Osgi in Apache Stanbol a Modular Software Stack and Reusable Set of Components for Semantic Content Management

Total Page:16

File Type:pdf, Size:1020Kb

Osgi in Apache Stanbol a Modular Software Stack and Reusable Set of Components for Semantic Content Management stanbol.apache.org OSGi in Apache Stanbol a modular software stack and reusable set of components for semantic content management September 2012 - Bertrand Delacretaz - @bdelacretaz OSGi? java modularization specs from the OSGi alliance, www.osgi.org an OSGi bundle is a jar file with metadata, can provide an Activator and Services OSGi bundle OSGi framework MANIFEST.MF Bundle name starts, wires and runs a set of bundles, dynamically OSGi Bundle version Import/export packages OSGi framework bundle metadata ... Declarative Services Runtime Configuration Admin runs at startup initialized by OSGi setup by OSGi setup by OSGi Logging Bundle OSGisetup by OSGi Activator Component OSGI web console JMX HTTP service registered by OSGi Plain Old setup by OSGi Application module 1 setup by OSGi Java OSGisetup by OSGi Application module 2 implements Service Interface ... stanbol.apache.org Building Stanbol as a runnable jar file that embeds OSGi bundles to install at startup bundle list bundle list Stanbol Stanbol Stanbol launcher core commons Maven build runnable jar with embedded bundles bundle list bundle list OSGi bootstrap maven-launchpad-plugin OSGi framework OSGi Stanbol from Apache Sling services engines OSGi SCR services Stanbol engine #1 bundle list Stanbol engine #2 Clerezza Custom engine RDF libs ... Initial configs ... Apache Sling’s OSGi launcher stanbol.apache.org Starting Stanbol Start the OSGi framework, which starts all available bundles and services double-click or java -jar HTTP OSGi services Apache Felix’s requests Stanbol launcher Stanbol HTTP runnable jar core service with embedded bundles OSGi service OSGi bootstrap Engines OSGi framework manager OSGi SCR services Apache Sling’s Stanbol engine #1 OSGi OSGi service OSGi service OSGi service Stanbol engine #2 launcher Custom engine Engine A Engine B ... Initial configs ... Apache Felix’s Apache Felix’s Apache Felix’s Web console OSGi Config Services console Admin Runtime OSGi framework (Apache Felix) Starts, configures and wires services dynamically stanbol.apache.org Configuring Stanbol Using the Apache Felix webconsole // corresponding code excerpts: private static final double DEFAULT_MIN_SCORE = 0.33; @Property(doubleValue = DEFAULT_MIN_SCORE) public static final String MIN_SCORE = "locationEnhancementEngine.min-score"; ... @Activate // called when OSGi component is activated protected void activate(ComponentContext ce) { Dictionary<String, Object> properties = ce.getProperties(); setMinScore((Double) properties.get(MIN_SCORE)); ... stanbol.apache.org Extending Stanbol Adding a custom EnhancementEngine @Component @Service public class MyEngine implements EnhancementEngine { OSGi bundle @Activate public void activate(ComponentContext c) { Maven build MANIFEST.MF // initialize, configure, ... } OSGi maven-bundle-plugin adds OSGI metadata metadata public int canEnhance(ContentItem item) { if(...item matches our expectations...) { return ENHANCE_SYNCHRONOUS; maven-scr-plugin registered by OSGi } else { adds services metadata MyEngine return CANNOT_ENHANCE; } Service } public void computeEnhancements(ContentItem item) { // run the engine and add results to item’s // RDF graph based on the item’s InputStream } Install in } Stanbol no restart needed stanbol.apache.org.
Recommended publications
  • Applicable for the Academic Year 2020-21 Batch: 2017
    Applicable for the academicyear2018-19 Batch:2015 SCHEME & SYLLABUS OF VII & VIIISEMESTERS B.E. COMPUTER SCIENCE AND ENGINEERING 2020-21 Vision and Mission of theInstitution: Vision: Dept. of CSE, SIT, Tumakuru Applicable for the academic year 2020-21 Batch: 2017 Vision and Mission of the Institution: Vision: “To develop young minds in a learning environment of high academic ambience by synergizing spiritual values and technological competence”. Mission: “To continuously strive for the total development of students by educating them in state-of-the-art technologies and helping them imbibe professional ethics and societal commitment, so that they emerge as competent professionals to meet the global challenges”. Vision and Mission of the Department: Vision: “To work towards the vision of the institution by building a strong teaching and research environment that is capable of responding to the challenges of the 21st century”. Mission: “To prepare under graduate, graduate and research students for productive careers in industry and academia, through comprehensive educational programs, research in collaboration with industry & government, dissemination by scholarly publications and professional society & co- curricular activities”. Program Educational Objectives (PEOs) Engineering graduates (CSE) will be able to: 1. Pursue successful careers in State/National/Multi-National companies as software developers by following sound professional and ethical practices in various cadres in key areas like networking, web design, cloud computing, big data processing, IoT, e-commerce, information security and so on. 2. Work effectively in multi-disciplinary and multi-cultural teams and demonstrate good soft skills. 3. Pursue higher education for a successful career in industry/academics/ research. 4. Pursue life-long learning, by anticipating trends in computer science and engineering, to excel in industry/academia or own a startup for a successful career as entrepreneur.
    [Show full text]
  • Tracking Known Security Vulnerabilities in Third-Party Components
    Tracking known security vulnerabilities in third-party components Master’s Thesis Mircea Cadariu Tracking known security vulnerabilities in third-party components THESIS submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in COMPUTER SCIENCE by Mircea Cadariu born in Brasov, Romania Software Engineering Research Group Software Improvement Group Department of Software Technology Rembrandt Tower, 15th floor Faculty EEMCS, Delft University of Technology Amstelplein 1 - 1096HA Delft, the Netherlands Amsterdam, the Netherlands www.ewi.tudelft.nl www.sig.eu c 2014 Mircea Cadariu. All rights reserved. Tracking known security vulnerabilities in third-party components Author: Mircea Cadariu Student id: 4252373 Email: [email protected] Abstract Known security vulnerabilities are introduced in software systems as a result of de- pending on third-party components. These documented software weaknesses are hiding in plain sight and represent the lowest hanging fruit for attackers. Despite the risk they introduce for software systems, it has been shown that developers consistently download vulnerable components from public repositories. We show that these downloads indeed find their way in many industrial and open-source software systems. In order to improve the status quo, we introduce the Vulnerability Alert Service, a tool-based process to track known vulnerabilities in software projects throughout the development process. Its usefulness has been empirically validated in the context of the external software product quality monitoring service offered by the Software Improvement Group, a software consultancy company based in Amsterdam, the Netherlands. Thesis Committee: Chair: Prof. Dr. A. van Deursen, Faculty EEMCS, TU Delft University supervisor: Prof. Dr. A.
    [Show full text]
  • Return of Organization Exempt from Income
    OMB No. 1545-0047 Return of Organization Exempt From Income Tax Form 990 Under section 501(c), 527, or 4947(a)(1) of the Internal Revenue Code (except black lung benefit trust or private foundation) Open to Public Department of the Treasury Internal Revenue Service The organization may have to use a copy of this return to satisfy state reporting requirements. Inspection A For the 2011 calendar year, or tax year beginning 5/1/2011 , and ending 4/30/2012 B Check if applicable: C Name of organization The Apache Software Foundation D Employer identification number Address change Doing Business As 47-0825376 Name change Number and street (or P.O. box if mail is not delivered to street address) Room/suite E Telephone number Initial return 1901 Munsey Drive (909) 374-9776 Terminated City or town, state or country, and ZIP + 4 Amended return Forest Hill MD 21050-2747 G Gross receipts $ 554,439 Application pending F Name and address of principal officer: H(a) Is this a group return for affiliates? Yes X No Jim Jagielski 1901 Munsey Drive, Forest Hill, MD 21050-2747 H(b) Are all affiliates included? Yes No I Tax-exempt status: X 501(c)(3) 501(c) ( ) (insert no.) 4947(a)(1) or 527 If "No," attach a list. (see instructions) J Website: http://www.apache.org/ H(c) Group exemption number K Form of organization: X Corporation Trust Association Other L Year of formation: 1999 M State of legal domicile: MD Part I Summary 1 Briefly describe the organization's mission or most significant activities: to provide open source software to the public that we sponsor free of charge 2 Check this box if the organization discontinued its operations or disposed of more than 25% of its net assets.
    [Show full text]
  • Tech Staffing Case Study
    TECH STAFFING CASE STUDY A comprehensive analysis of Andiamo’s technology recruiting success with Startups. Stang Success Story Andiamo is the top-rated stang partner for over 30 elite tech startups across the country. Andiamo helps these startup clients build out their technology divisions by finding the best and brightest technologists from top universities and elite companies. Through our data-driven recruiting model, we find success by tackling hiring challenges and placing engineers and developers at the most sought after startup companies. START UP HIRING NEEDS Positions: Full Stack Developer, Software Engineer, Big Data Engineer, SRE, Technical Project Manager, Mobile Developer Technologies: Java, Scala, Ruby, Python, Javascript (Angular.JS, React.JS, Node.JS), MongoDB, AWS, Docker, Chef, Puppet, Spark, OUR DELIVERY To meet our clients’ stang needs, Andiamo helps specific teams attract and hire the POSITIONS FILLED best engineering talent in the country. We leverage massive amounts of data to conduct 49 research analyzing national hiring and salary trends which help fill niche positions. Some of the startup clients we recruit on behalf of include: 25 6 9 5 4 Full Stack TPM Software Mobile UX/UI Database Developer Engineer Dev. FLATIRON DEVELOPERS PLACED The data below represents the profiles of developers that Andiamo has placed with Startups. AVERAGE YEARS FIELD OF STUDY SCHOOLS ATTENDED OF EXPERIENCE: 11 5% • Columbia University 5% Software Information Engineering • RPI Science 3% EDUCATION 5% Economics • University of Texas at Austin Mathematics • Cornell University 8% • University of Chicago at Illinois 34% Electrical Engineering 54% 65% 9% Computer Science TECH SKILLSET 5% Computer Engineering 5% Java 2% Other Front End (Angular/React) Assoc.
    [Show full text]
  • Robert Munteanu, Adobe
    Cloud-Native Legacy Applications Robert Munteanu, Adobe Slides revision: 20190922-478c9cc 1 Welcome 2 About me 3 Outline Welcome Cloud-native vs legacy Managing cloud-native applications Cloud-native transformation 4 Cloud-native vs legacy 5 Cloud-native applications 6 Defining cloud-native Using cloud-native services Application-centric design Automation Cloud Native Architectures - Kamal Arora, Erik Farr, Tom Laszewski, Piyum Zonooz 7 Cloud-native services Logging: StackDriver, Centralised Logging, Logging and Auditing Routing: ELB, Azure Load Balancer, Cloud Load Balancing Block storage: Azure Blob Store, S3, Cloud Storage Databases: RDS, Cloud SQL, Azure SQL Database 8 Application-centric design 9 Automation 1. Building 2. Testing 3. Integration 4. Deployment 5. Monitoring 6. Capacity adjustment 10 LLLeeegggaaacccyyy fffooorrr eeevvveeerrryyyooonnneee 11 LLLeeegggaaacccyyy fffooorrr ppprrrooogggrrraaammmmmmeeerrrsss 12 Legacy applications legacy /ˈlɛɡəsi/ 1. an amount of money or property le to someone in a will. 2. soware or hardware that has been superseded but is difficult to replace because of its wide use https://www.lexico.com/en/definition/legacy 13 Managing cloud-native applications 14 Containers, container, containers FROM openjdk:8-jre-alpine MAINTAINER [email protected] RUN mkdir -p /opt/sling COPY target/sling-cloud-ready-*.jar /opt/sling/sling.jar WORKDIR /opt/sling EXPOSE 8080 VOLUME /opt/sling/sling ENV JAVA_OPTS -Xmx512m ENV SLING_OPTS '' CMD exec java $JAVA_OPTS -jar sling.jar $SLING_OPTS 15 Kubernetes 16 Kubernetes
    [Show full text]
  • Apachecon EU 08 Fast Feather Track Presentation on Sling
    Apache Sling Felix Meschberger Day Management AG [email protected] General Request Processing request ResourceResolver Resource (resource type) ServletResolver Servlet Script response Virtual Resource Tree · Based on JCR Repository · Integrates with mapped Resources ± Resources from OSGi Bundles ± Servlets and Servlet Filters registered as OSGi Services · Unified access to Data from various sources · Primary Target is the JCR Repository URI Decomposition /content/page.print.a4.html Resource Path Selectors Extension Servlet and Script Resolution · Scripts and Servlets are Equal ± Servlets registered as OSGi Services are mapped into the virtual Resource Tree ± Scripts stored in the Repository · Default Servlets (or Scripts) ± Registerable ± Fallback / Last Ressort ScriptResolver · Path to Script built from ... · Configured Path ( /apps, /libs ) · Resource Type converted to path ( nt/file ) · Selector String ( print/a4) · Request Method & MIME Type ± GET --> Request URL Extension ( html ) ± else --> Method Name ( POST, PUT, ... ) ScriptResolver Example · URI: /content/page.print.a4.html · Resource: /content/page · Resource Type: sample:page · Script for GET: ± /sling/scripts/sample/page/print/a4/html.* · Script for POST: ± /sling/scripts/sample/page/print/a4/POST.* Facts · Sling API ± No Reference to JCR API · Modular and Runtime Configurable ± OSGi Framework · Two Deployment ± Standalone Java Application ± Web Application Standalone Java Application · One single executable JAR file · Small Launcher · Starts OSGi Framework (Apache Felix) · Uses Jetty in an OSGi Bundle Web Application · Extends Standalone Application ± Replaces Command Line Support with a Servlet · Uses a Bridge to connect Sling to the Servlet Container Questions One Last Word Visit http://dev.day.com/ .
    [Show full text]
  • Creating Dashboards and Data Stories Within the Data & Analytics Framework (DAF)
    Creating dashboards and data stories within the Data & Analytics Framework (DAF) Michele Petitoc, Francesca Fallucchia,b and De Luca Ernesto Williama,b a DIII, Guglielmo Marconi University, Via Plinio 44, 00193 Roma RM, Italy E-mail: [email protected], [email protected] b DIFI, Georg Eckert Institute Braunschweig, Celler Str. 3, 38114 Braunschweig, German E-mail: [email protected], [email protected] c DIFI, Università̀ di Pisa, Lungarno Antonio Pacinotti 43, 56126, Pisa PI, Italy E-mail: [email protected] Abstract. In recent years, many data visualization tools have appeared on the market that can potentially guarantee citizens and users of the Public Administration (PA) the ability to create dashboards and data stories with just a few clicks, using open and unopened data from the PA. The Data Analytics Framework (DAF), a project of the Italian government launched at the end of 2017 and currently being tested, integrates data based on the semantic web, data analysis tools and open source business intelli- gence products that promise to solve the problems that prevented the PA to exploit its enormous data potential. The DAF favors the spread of linked open data (LOD) thanks to the integration of OntoPiA, a network of controlled ontologies and vocabularies that allows us to describe the concepts we find in datasets, such as "sex", "organization", "people", "addresses", "points of inter- est", "events" etc. This paper contributes to the enhancement of the project by introducing the process of creating a dashboard in the DAF in 5 steps, starting from the dataset search on the data portal, to the creation phase of the real dashboard through Superset and the related data story.
    [Show full text]
  • ECM Platforms: the Next Generation of Enterprise Content Management
    ECM Platforms: The Next Generation of Enterprise Content Management The Evolution of ECM: Platform Oriented, Flexible, Architected for the Cloud and Designed for Technologists Over the last decade, content technology, use and expectations have signicantly evolved - redening the requirements for architects, project managers and developers responsible for implementing ECM solutions. Emerging best practices suggest that a well-designed ECM platform supports solution development and deployment in a manner that is predictable, sustainable and aordable. This white paper explores these content technology changes, and explains the value and benets to business and technical adopters of embracing a new generation of ECM platform technology. Eric Barroca, Roland Benedetti - August 12, 2011 © Copyright 2011 - 2012 Nuxeo. All Rights Reserved. www.nuxeo.com Taking a Platform Approach to Building Content Centric Applications Contents Executive Summary_______________________________________________________4 Scope and Goals__________________________________________________________4 Target Audience__________________________________________________________4 Defining Enterprise Content and Enterprise Content Management_______________5 What Is Enterprise Content Management?_____________________________________5 What Is Enterprise Content?_________________________________________________6 Drivers for ECM Adoption___________________________________________________6 Enterprise Content Trends__________________________________________________8 ECM: It's not Just
    [Show full text]
  • State of the Art Technologies and Architectures for EMPOWER
    Deliverable D3.1.1 State of the Art Technologies and Architectures for EMPOWER Project title: Support of Patient Empowerment by an intelligent self- management pathway for patients Project acronym: EMPOWER Project identifier: FP7-ICT-2011-288209 Project instrument: STREP Web link: www.empower-fp7.eu Dissemination level: PU (public) Contractual delivery: 2012-06-30 Actual delivery: 2012-06-28 Leading partner: HMGU The research leading to these results has received funding from the European Community's Seventh Framework Programme (FP7/2007-2013) under grant agreement No 288209, EMPOWER Project. FP7-288209 EMPOWER Document History Version Date Changes From Review HMGU, V0.1 2012-02-29 Initial Document All Partners SRFG V0.2 2012-05-15 Content added All Partners All Partners V0.4 2012-05-25 Comments SRFG All Partners MOH, SRFG, V0.5 2012-06-14 Content added All Partners GOIN HMGU, V0.6 2012-06-19 Content added All Partners ICOM HMGU, V0.7 2012-06-22 Content added SRFG, MOH, All Partners GOIN, USI V1.0 2012-06-27 Final revision All Partners - EMPOWER Consortium Contacts Beneficiary Name Phone E-Mail SRFG Manuela Plößnig +43 662 2288 402 [email protected] HMGU Claudia Hildebrand +49 89 3187 4182 [email protected] GOIN Siegfried Jedamzik +49 8 41956161 [email protected] USI Peter J. Schulz +41586664724 [email protected] SRDC Asuman Dogac +90 312 210 13 93 [email protected] ICOM Ilias Lamprinos +302106677953 [email protected] MOH Ali Kemal Caylan +903125851907 [email protected] d311_empower_technologies-and-architectures-v10.docx 2 / 136 FP7-288209 EMPOWER Table of Contents 1 Summary .......................................................................................................................
    [Show full text]
  • DATASHEET Federal
    DATASHEET Federal The next generation of application performance management Distributed web applications often contain frustrating blind spots KEY BENEFITS FOR FEDERAL IT TEAMS and mysterious, recurring problems. Only AppDynamics delivers – Visualize your entire application, from the simplicity, visibility, and deep diagnostics that Ops and Dev the browser to the database teams require. – Monitor hybrid environments with The new world of government applications has created a whole new set of Java, .NET and PHP challenges for agencies tasked with ensuring application health and performance. – Troubleshoot bottlenecks 90% faster Modern application architectures, new technologies, and a rapid rate of change with code-level diagnostics have created a perfect storm of complexity in today’s applications. As a result, performance problems surface that are often difficult to identify, diagnose, and fix. – Automate common fixes with Application Run Book Automation With AppDynamics, federal IT teams can efficiently consolidate resources by optimizing the performance of applications. It’s more important than ever to have a simple yet fast way to monitor, diagnose, and resolve application problems before they affect revenue. Introducing AppDynamics for federal agencies “Our Mean-Time-to- Repair With AppDynamics, agency IT organizations can: used to be days or hours. – Proactively monitor end user experience from any location and cities With AppDynamics, it’s now a matter of minutes.” – Auto-discover and map application and transactions without manual
    [Show full text]
  • Trace-Based Debloat for Java Bytecode a ∗ a a a César Soto-Valero , , Thomas Durieux , Nicolas Harrand and Benoit Baudry
    Trace-based Debloat for Java Bytecode a < a a a César Soto-Valero , , Thomas Durieux , Nicolas Harrand and Benoit Baudry aKTH Royal Institute of Technology, SE-100 44 Stockholm, Sweden ARTICLEINFO ABSTRACT Keywords: Software bloat is code that is packaged in an application but is actually not used and not necessary software bloat to run the application. The presence of bloat is an issue for software security, for performance, and dynamic analysis for maintenance. In this paper, we introduce a novel technique to debloat Java bytecode through program specialization dynamic analysis, which we call trace-based debloat. We have developed JDBL, a tool that automates build automation the collection of accurate execution traces and the debloating process. Given a Java project and a software maintenance workload, JDBL generates a debloated version of the project that is syntactically correct and preserves the original behavior, modulo the workload. We evaluate JDBL by debloating 395 open-source Java libraries for a total 10M+ lines of code. Our results indicate that JDBL succeeds in debloating 62:2 ~ of the classes, and 20:5 ~ of the dependencies in the studied libraries. Meanwhile, we present the first experiment that assesses the quality of debloated libraries with respect to 1;066 clients of these libraries. We show that 957/1;001 (95:6 ~) of the clients successfully compile, and 229/283 (80:9 ~) clients can successfully run their test suite, after the drastic code removal among their libraries. 1. Introduction We address this challenge through the combination of fea- tures provided by the diversity of implementations of code Software systems have a natural tendency to grow over coverage tools.
    [Show full text]
  • Contents Qus: Technology Stack of CQ5 and Describe Each One?
    Contents Qus: Technology Stack of CQ5 and describe each one? ..................................................................... 3 Inside CQ5 ........................................................................................................................................... 4 Server Startup Sequence..................................................................................................................... 5 Qus: What is cq5 Architecture ............................................................................................................ 5 Qus: How to use multi language translation in JSP in CQ / WEM ....................................................... 9 Qus: How to connect external DB from CQ5? .................................................................................. 12 Qus: What is Segmentation?............................................................................................................. 15 SEGMENTATION IN CQ .......................................................................................................... 17 DEFINING A NEW SEGMENT ................................................................................................ 19 USING AND AND OR CONTAINERS .................................................................................... 21 TESTING THE APPLICATION OF A SEGMENT ................................................................. 22 Qus: Campaign Management ..........................................................................................................
    [Show full text]