Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Exploring legacy ware with rdf and survol.17 july 2018

165 vues

Publié le

Lab49 Semantic Web London meetup on July 17th.

Survol is Primhill Computer's Software Intelligence tool to analyse and investigate running applications and legacy information systems in-situ. It is based on RDF and CIM.

Publié dans : Internet
  • Soyez le premier à commenter

Exploring legacy ware with rdf and survol.17 july 2018

  1. 1. Exploring LegacyWare with RDF and Survol How Semantic Web helps Software Archeology 18/07/2018 Semantic Web London / Primhill Computers 1
  2. 2. Legacy software is growing. • Massive code base: Millions of LOCs • Non-existent / obsolete / false documentation • Long history: 20 years +. Still growing • More interconnections between systems • Multiple hardware, languages, architectures, interfaces Companies cannot rebuild their Information System from scratch: They just clone it piece by piece; It grows, organically. 18/07/2018 Semantic Web London / Primhill Computers 2
  3. 3. Understanding legacy software: Solutions • Documentation. • Static analysis tools. • Consultants, reading the code • Models: UML • Reverse engineering tools: Rational Rose 18/07/2018 Semantic Web London / Primhill Computers 3
  4. 4. No easy way to reverse-engineer IT systems There is no methodology to investigate an Information System: • Methodologies only work for simple systems • Reverse-engineering tools have no understanding of the application • Systems are constantly evolving: Only in-vivo investigation can accurately describe a system when it is updated. • No semantic definition, no model: The only common language between machine and users, are IT objects. 18/07/2018 Semantic Web London / Primhill Computers 4
  5. 5. Self-updated maps of IT systems • Tim Berners-Lee: «I have a dream for the Web in which computers become capable of analysing all the data on the web». Semantic Web models navigation on semantic resources. A machines network, eb, as opposed to static documentation, is constantly up-to-date. • These semantic resources are modelled by CIM: Common Information Model. CIM is the abstract ontology. • RDF: Resource Description Framework provides the mechanism and the knowledge representation. 18/07/2018 Semantic Web London / Primhill Computers 5
  6. 6. CIM / Common Information Model ? A DMTF open standard defining how IT elements are represented as a common set of objects and relationships. Implemented by WBEM (Web-Based Enterprise Management), it provides queries on machine and software state. Class CIM_Process : CIM_LogicalElement { string Name; datetime CreationDate; uint32 Priority; string Handle; } • WMI (Windows™ Management Instrumentation) • OpenLMI for Linux 18/07/2018 Semantic Web London / Primhill Computers 6
  7. 7. RDF + CIM = Information System dynamic models • CIM is an object-based industrial definition of IT resources, standardised by DMTF (Distributed Management Task Force). • RDF provides the semantic model: Subject.Predicate = Object  (Subject,Predicate,Object) RDF triples and URIs aggregate data from and link to heterogeneous information sources. 18/07/2018 Semantic Web London / Primhill Computers 7
  8. 8. Survol: Browsing IT resources • Models IT resources with CIM model and RDF implementation: CIM_Process, CIM_DataFile, CIM_ComputerSystem … (Dozens !) • Model enrichment with simple Python scripts • HTML, Json, RDF, SVG, Javascript/D3 output • Python 2/3, Windows/Linux. IE, Firefox, Chrome. • Dozens of toolbox scripts for interrogating a running machine, all wrapped in CIM/RDF framework: netstat, ps, ldd, nmap, ping, strace, ltrace, gdb, depends, smbclient, tcpdump, etc… now usable by anyone, results visible by anyone. 18/07/2018 Semantic Web London / Primhill Computers 8
  9. 9. Browsing IT resources on a local machine • Process tree • Python module dependencies • Shared libraries and their symbols • Process memory parsing • Kernel module dependencies • Installed software • COM components 18/07/2018 Semantic Web London / Primhill Computers 9
  10. 10. PyCharm on Windows (D3) 18/07/2018 Semantic Web London / Primhill Computers 10
  11. 11. Oracle on Linux (SVG) 18/07/2018 Semantic Web London / Primhill Computers 11
  12. 12. Numpy Python package (HTML) numpy Condition_pandas [('>=', '1.9.0')] Condition_scipy [('>=', '1.8.2')] Condition_tensorboard [('>=', '1.12.0')] Condition_tensorflow [('>=', '1.13.3')] apache vps516494.ovh.net Location site-packages/ Package __init__.pyc Platform None Version 1.14.3 18/07/2018 Semantic Web London / Primhill Computers 12
  13. 13. System-wide shared-memory (D3) 18/07/2018 Semantic Web London / Primhill Computers 13
  14. 14. Browsing distributed applications • Sockets between processes: By drag’n’dropping RDF uris, one can display processes of several machines, in the same browser. • Remote Oracle database: socket connection, tables 18/07/2018 Semantic Web London / Primhill Computers 14
  15. 15. SSH socket from Win10 to RedHat 18/07/2018 Semantic Web London / Primhill Computers 15
  16. 16. Remote Oracle connection 18/07/2018 Semantic Web London / Primhill Computers 16
  17. 17. Oracle schema: RDF <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:ns1="http://primhillcomputers.com/ontologies/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > <rdf:Description rdf:about="http://DESKTOP- NI99V8E:8000/survol/entity.py?xid=oracle/table.Db=XE_OVH,Schema=APEX_040000,Table=WWV_FLOW_DUAL100"> <ns1:Status>VALID</ns1:Status> <ns1:Creation rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-08-28T22:23:24</ns1:Creation> </rdf:Description> <rdf:Description rdf:about="http://DESKTOP- NI99V8E:8000/survol/entity.py?xid=oracle/table.Db=XE_OVH,Schema=APEX_040000,Table=WWV_FLOW_TEMP_TABLE"> <ns1:Creation rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-08-28T22:23:24</ns1:Creation> <ns1:Status>VALID</ns1:Status> </rdf:Description> <rdf:Description rdf:about="http://DESKTOP- NI99V8E:8000/survol/entity.py?xid=oracle/schema.Db=XE_OVH,Schema=APEX_040000"> <ns1:table rdf:resource="http://DESKTOP- NI99V8E:8000/survol/entity.py?xid=oracle/table.Db=XE_OVH,Schema=APEX_040000,Table=WWV_FLOW_DUAL100"/> <ns1:table rdf:resource="http://DESKTOP- NI99V8E:8000/survol/entity.py?xid=oracle/table.Db=XE_OVH,Schema=APEX_040000,Table=WWV_FLOW_TEMP_TABLE"/> </rdf:Description> </rdf:RDF> 18/07/2018 Semantic Web London / Primhill Computers 17
  18. 18. Future directions • Plug an RDF inference engine: Protégé, Jena • Store RDF triples in a distributed database, for reporting and analysis. • More scripts for investigating new resources types: APIs, software, databases etc… WQL queries. • Process mining, i.e. the analysis of business processes based on event logs; This concept also applies to the many technical log files on a running system. • Jupyter Notebook integration • SPARQL integration • WSGI hosting for real-time events capture 18/07/2018 Semantic Web London / Primhill Computers 18

×