The release of "DSpace Services" represents the first offering of the DSpace 2.0 technology developed with funding from JISC, and staffing support from the DSpace Foundation, CARET, MIT, @mire, Open Repository, and HP.
This is a presentation on what DSpace services are and how they integrate into DSpace 1.6.0
Thanks to the efforts on this initiative by Mark Diggory from @mire, Aaron Zeckoski from CARET, Ben Bosman from @mire, Graham Triggs from Open Repository and Bradley McLean from DuraSpace Foundation. top
This document discusses building asynchronous services with Service Component Architecture (SCA). It begins with an overview of SCA and why asynchronous services are important. It then covers facilities that support asynchronous services like concurrency classes, JAX-WS, JMS, and BPEL. The document explains how SCA supports asynchronous service interactions through callbacks and bidirectional interfaces. It provides an example of an asynchronous service, client, and composite. Finally, it compares asynchronous services to using events and provides a demo scenario of an asynchronous travel search application built with SCA.
1. The document discusses Taverna 2's dispatch layer architecture which allows complex control flow within processors through composable dispatch layers that can ignore, pass, block, modify, or act on messages.
2. Each processor contains a stack of arbitrarily many dispatch layers that can implement features like dynamic binding, caching, recursive behavior, job queuing, failover, retry, and service invocation.
3. Taverna 2 combines data managers, workflow enactors, and security agents into collaborative virtual experiments within a peer group that can share membership and persist beyond a single workflow run.
A Walking Tour of (almost) all of Springdom Joshua Long
this is the deck for my 3+ hour walking tour talk that I give as a workshop at various conferences. This talk introduces practically everything in Spring -- come into the talk unaware of the concepts or frameworks and leave with a working knowledge of all the frameworks, and of all the applications for the technologies.
Presented at the Freebase NYC Workshop, December 2009. Covers basic MQL query construction, basic service calls and eMQL adapter construction. PHP Code can be found at http://dev.mqlx.com/~jamie/nyc2009
In this presentation we present SQL Azure under the hood, we explore the internal componentes and process involved in the SQL Azure Platform.
Regards
Ing. Eduardo Castro, SQL Server MVP
http://comunidadwindows.org
http://ecastrom.blogspot.com
The document summarizes Prabhath Suminda Pathirana's 24-week internship at WSO2, where he completed three main tasks. The first task involved writing test cases to migrate Axis2 from using Apache XMLSchema version 1 to version 2. The second task was writing integration tests for several mediators and features in WSO2 ESB. The third task focused on performance improvements for Axis2's POJO web services by generating wrapper classes at deployment time to avoid reflection overhead at runtime. The document discusses the challenges faced and technologies learned over the course of the internship.
DWR (Direct Web Remoting) allows JavaScript code in a browser to call Java functions on a web server as if they were local functions. It consists of Java server-side libraries and a servlet, as well as JavaScript libraries. DWR handles converting parameters and return values between JavaScript and Java. It also handles low-level XMLHttpRequest handling. DWR dynamically generates a JavaScript proxy class that matches a Java class, allowing remote method calls. Utility functions in DWR help update web pages with the results.
The document describes projects completed by Andun S.L. Gunawardana during an internship at WSO2 Lanka (Pvt) Ltd. The main projects included developing an entitlement servlet filter feature, a rawXSLT mediator for WSO2 ESB, and a new XPATH parser for WSO2 ESB. Other projects involved refactoring WSO2 Application Server samples and participating in a test automation hackathon. Details are provided on the requirements, design, and performance improvements of each project.
This document discusses building asynchronous services with Service Component Architecture (SCA). It begins with an overview of SCA and why asynchronous services are important. It then covers facilities that support asynchronous services like concurrency classes, JAX-WS, JMS, and BPEL. The document explains how SCA supports asynchronous service interactions through callbacks and bidirectional interfaces. It provides an example of an asynchronous service, client, and composite. Finally, it compares asynchronous services to using events and provides a demo scenario of an asynchronous travel search application built with SCA.
1. The document discusses Taverna 2's dispatch layer architecture which allows complex control flow within processors through composable dispatch layers that can ignore, pass, block, modify, or act on messages.
2. Each processor contains a stack of arbitrarily many dispatch layers that can implement features like dynamic binding, caching, recursive behavior, job queuing, failover, retry, and service invocation.
3. Taverna 2 combines data managers, workflow enactors, and security agents into collaborative virtual experiments within a peer group that can share membership and persist beyond a single workflow run.
A Walking Tour of (almost) all of Springdom Joshua Long
this is the deck for my 3+ hour walking tour talk that I give as a workshop at various conferences. This talk introduces practically everything in Spring -- come into the talk unaware of the concepts or frameworks and leave with a working knowledge of all the frameworks, and of all the applications for the technologies.
Presented at the Freebase NYC Workshop, December 2009. Covers basic MQL query construction, basic service calls and eMQL adapter construction. PHP Code can be found at http://dev.mqlx.com/~jamie/nyc2009
In this presentation we present SQL Azure under the hood, we explore the internal componentes and process involved in the SQL Azure Platform.
Regards
Ing. Eduardo Castro, SQL Server MVP
http://comunidadwindows.org
http://ecastrom.blogspot.com
The document summarizes Prabhath Suminda Pathirana's 24-week internship at WSO2, where he completed three main tasks. The first task involved writing test cases to migrate Axis2 from using Apache XMLSchema version 1 to version 2. The second task was writing integration tests for several mediators and features in WSO2 ESB. The third task focused on performance improvements for Axis2's POJO web services by generating wrapper classes at deployment time to avoid reflection overhead at runtime. The document discusses the challenges faced and technologies learned over the course of the internship.
DWR (Direct Web Remoting) allows JavaScript code in a browser to call Java functions on a web server as if they were local functions. It consists of Java server-side libraries and a servlet, as well as JavaScript libraries. DWR handles converting parameters and return values between JavaScript and Java. It also handles low-level XMLHttpRequest handling. DWR dynamically generates a JavaScript proxy class that matches a Java class, allowing remote method calls. Utility functions in DWR help update web pages with the results.
The document describes projects completed by Andun S.L. Gunawardana during an internship at WSO2 Lanka (Pvt) Ltd. The main projects included developing an entitlement servlet filter feature, a rawXSLT mediator for WSO2 ESB, and a new XPATH parser for WSO2 ESB. Other projects involved refactoring WSO2 Application Server samples and participating in a test automation hackathon. Details are provided on the requirements, design, and performance improvements of each project.
The document discusses migrating an existing authentication system at Columbia University to the Central Authentication Service (CAS). Specifically, it addresses:
1) Integrating the legacy service registry and custom attributes into CAS.
2) Adding support for the legacy "WIND" authentication protocol to CAS to allow existing clients to continue using either the legacy or CAS protocols during migration.
3) Customizing CAS login behavior and UI to match the existing system.
JUDCon London 2011 - Elastic SOA on the Cloud, Steve MillidgeC2B2 Consulting
This document discusses deploying JBoss Enterprise Service Bus (ESB) for elasticity on the cloud. It provides an overview of service-oriented architecture (SOA) and cloud computing. The key benefits of SOA on the cloud are cloud integration and cloud bursting. Challenges to elasticity include networking, service discovery, clustering, and monitoring. JBoss Operations Network (RHQ) can help with elasticity by monitoring metrics, alerting on thresholds, and triggering the addition of cloud instances through APIs when needed. Local JMS queues provide advantages for elasticity over clustered JMS.
Speaker: Jacob Aae Mikkelsen
Once you have successfully developped your application in Grails, Ratpack or your other favorite framework, you would like to see it deployed as fast and painless as possible, right?
This talk will cover some of the supporting cast members of a succesful modern infrastructure, that developers can understand and use efficiently, and with good DevOps practices.
Key elements are
Docker
Infrastructure as Code
Container Orchestration
The demo-goods will hopefully be on our side, as this talk includes quite some live demos!
A dynamic routing action assigns a route for a message based on routing information available in an XQuery resource. A stage node is a container of actions. A routing action identifies a target service for the message and configures how the message is routed to that service.
The document summarizes the OSGi 4.2 Enterprise Specification, which includes specifications for component models, distributed services, database access, web applications, and other supporting technologies. Key aspects include Blueprint for easier OSGi development, Remote Services for exposing and consuming services over the network, JPA and JDBC for database access, and integration with Java EE technologies like JNDI, JTA, and JMX. Examples of using these specifications include the Apache Aries Trader application and isolated examples from implementing projects. Future work may include specifications for subsystems, applications, package management, and asynchronous messaging.
Akka is using the Actors together with STM to create a unified runtime and programming model for scaling both UP (multi-core) and OUT (grid/cloud). Akka provides location transparency by abstracting away both these tangents of scalability by turning them into an ops task. This gives the Akka runtime freedom to do adaptive automatic load-balancing, cluster rebalancing, replication & partitioning
appengine ja night #24 Google Cloud Endpoints and BigQuery (English)Ryo Yamasaki
Google Cloud Endpoints make it easy to use App Engine as a backend for client applications by generating client libraries for Android, iOS, and JavaScript. The document discusses how to develop APIs with Endpoints by annotating Java methods, testing APIs with the API Explorer, generating client libraries, and using the libraries to call APIs from client applications. Key annotations like @Api, @ApiMethod, and @Named are explained.
PuppetCamp SEA 1 - Puppet Deployment at OnAppWalter Heck
Wai Keen Woon, CTO CDN Division OnApp Malaysia, gave an interesting overview of what the Puppet architecture at OnApp looks like. The CDN division at OnApp is a large provider of CDN services, and as such makes a very interesting candidate for a case study.
This document provides an overview of new features in Java EE 7, including WebSocket, JSON processing, batch applications, concurrency utilities, simplified JMS, and more. It discusses these features and their availability in upcoming Liberty releases. The roadmap outlines IBM's plans to deliver a full Java EE 7 compliant WebSphere Application Server and continuous delivery of new features through Liberty. Related sessions at the conference are also listed.
Introducción a DSpace - Universidad Nacional del Altiplano, PunoElwin Huaman
DSpace es una plataforma de código abierto que permite crear repositorios institucionales para almacenar y preservar documentos digitales. Fue desarrollado originalmente por el MIT y HP en 2002. DSpace permite gestionar comunidades, colecciones e ítems con metadatos, y ofrece características como búsqueda, flujos de trabajo para revisión, preservación a largo plazo e interoperabilidad con otros sistemas a través de protocolos como OAI-PMH. Los repositorios creados con DSpace proporcion
El documento describe los repositorios de información como sitios centralizados para archivar y almacenar información digital. Existen diferentes tipos de repositorios públicos y privados para videos, música, fotografías y libros, donde los usuarios pueden subir y compartir o descargar este contenido. Derivan de la palabra latina "repositorium" que significa alacena o almacén.
El documento describe ProQuest y DSpace, dos bases de datos por suscripción que proveen acceso a documentos académicos. ProQuest contiene más de 11,000 revistas, 400 periódicos en texto completo, y 30,000 tesis. Fue fundada en 1938 y actualmente ofrece productos como ProQuest Dissertations & Theses, The Summon Service y ProQuest Central. DSpace es un software de código abierto utilizado para crear repositorios digitales académicos. Fue lanzado en 2002 por MIT y HP y actualmente es mantenido por DuraSpace.
Difusion Del Conocimiento Nuevos Tiempos Nuevas Perspectivas Foro VigoLolaPereira
Este documento discute la importancia de la difusión del conocimiento a través de publicaciones científicas y la necesidad de mejorar la calidad de las revistas españolas. Señala que la transferencia del conocimiento requiere una buena difusión y que las publicaciones cumplen funciones como establecer prioridades y apoyar la práctica profesional. También analiza los criterios de calidad editorial y científica de las publicaciones, así como las acciones necesarias para que las revistas sean más influyentes.
DSpace es un software de código abierto para crear repositorios digitales institucionales. Permite a las instituciones recopilar y preservar en un solo sistema una variedad de tipos de documentos digitales, incluidas publicaciones, datos de investigación y materiales académicos. Los repositorios creados con DSpace pueden ser indexados y descubiertos fácilmente a través de motores de búsqueda estándar.
Este documento describe los repositorios digitales institucionales, sus objetivos y características. Explica que un repositorio es una sede web que recoge y difunde la producción académica de una institución, permitiendo el acceso abierto a metadatos y textos completos. Los objetivos de los repositorios son la difusión, visibilidad, acceso abierto y preservación de la información académica. También describe tipos de repositorios, tecnologías utilizadas como DSpace o EPrints, y la situación actual de los repositorios en
Este documento describe los repositorios de recursos educativos, definidos como sitios web que permiten almacenar, buscar y descargar objetos de aprendizaje de diversos tipos para su uso en el aprendizaje mediado. Explica que los repositorios contienen objetos con metadatos para su localización y características como permitir modificaciones y búsqueda de recursos, además de favorecer la generación y reutilización de contenidos de aprendizaje.
Este documento presenta los elementos clave para construir un proyecto de investigación universitaria. Explica que la investigación es una función esencial de la universidad y debe considerarse una actividad académica fundamental. Luego, detalla los procesos básicos para generar investigación como la lectura crítica, experiencia laboral y participación en eventos académicos. Finalmente, describe los componentes de una propuesta o anteproyecto de investigación como la formulación del problema, objetivos, marco teórico y cronograma.
El documento describe los repositorios digitales institucionales, incluyendo su definición, características, tipos de contenido, implementación y software utilizado. Los repositorios digitales institucionales son sistemas en red que almacenan y proveen acceso a los documentos digitales generados por una institución, como tesis, artículos y presentaciones, con el fin de preservar y difundir el conocimiento institucional. El documento analiza estudios sobre el estado actual de los repositorios y provee detalles sobre sistemas de software comúnmente utilizados
Repositorios: definición, características y ejemplosJulio Cabrejos
Este documento define un repositorio como un sitio web donde se almacena información digital de forma pública como presentaciones, imágenes, videos y documentos. Explica que los repositorios ofrecen características como soporte para diferentes formatos, escalabilidad, interoperabilidad y búsquedas. Además, menciona algunos repositorios populares como YouTube para videos, Slideshare para presentaciones, Flickr para fotos y Scribd y Monografias para documentos.
The document discusses .NET and its future direction. It covers topics like the next generation JIT compiler, SIMD, runtime compilers, Roslyn, language innovations, Entity Framework, universal projects, .NET Native, cross-device capabilities, and partnerships like Xamarin. It also discusses openness, the .NET runtime being optimized for the cloud, and modular frameworks that can be deployed inside applications.
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
1. The document discusses integrating front-end frameworks like Angular, Ember, and React with Rails by constructing JSON APIs, preloading data to avoid loading screens, and server-side rendering for SEO and performance.
2. It provides code examples for building a TODO application with each framework, including using ngResource and factories in Angular, Ember conventions like Ember Data, and building isolated React components.
3. Server-side rendering is highlighted as the future for isomorphic JavaScript, providing benefits like prerendering on initial page load.
The document discusses migrating an existing authentication system at Columbia University to the Central Authentication Service (CAS). Specifically, it addresses:
1) Integrating the legacy service registry and custom attributes into CAS.
2) Adding support for the legacy "WIND" authentication protocol to CAS to allow existing clients to continue using either the legacy or CAS protocols during migration.
3) Customizing CAS login behavior and UI to match the existing system.
JUDCon London 2011 - Elastic SOA on the Cloud, Steve MillidgeC2B2 Consulting
This document discusses deploying JBoss Enterprise Service Bus (ESB) for elasticity on the cloud. It provides an overview of service-oriented architecture (SOA) and cloud computing. The key benefits of SOA on the cloud are cloud integration and cloud bursting. Challenges to elasticity include networking, service discovery, clustering, and monitoring. JBoss Operations Network (RHQ) can help with elasticity by monitoring metrics, alerting on thresholds, and triggering the addition of cloud instances through APIs when needed. Local JMS queues provide advantages for elasticity over clustered JMS.
Speaker: Jacob Aae Mikkelsen
Once you have successfully developped your application in Grails, Ratpack or your other favorite framework, you would like to see it deployed as fast and painless as possible, right?
This talk will cover some of the supporting cast members of a succesful modern infrastructure, that developers can understand and use efficiently, and with good DevOps practices.
Key elements are
Docker
Infrastructure as Code
Container Orchestration
The demo-goods will hopefully be on our side, as this talk includes quite some live demos!
A dynamic routing action assigns a route for a message based on routing information available in an XQuery resource. A stage node is a container of actions. A routing action identifies a target service for the message and configures how the message is routed to that service.
The document summarizes the OSGi 4.2 Enterprise Specification, which includes specifications for component models, distributed services, database access, web applications, and other supporting technologies. Key aspects include Blueprint for easier OSGi development, Remote Services for exposing and consuming services over the network, JPA and JDBC for database access, and integration with Java EE technologies like JNDI, JTA, and JMX. Examples of using these specifications include the Apache Aries Trader application and isolated examples from implementing projects. Future work may include specifications for subsystems, applications, package management, and asynchronous messaging.
Akka is using the Actors together with STM to create a unified runtime and programming model for scaling both UP (multi-core) and OUT (grid/cloud). Akka provides location transparency by abstracting away both these tangents of scalability by turning them into an ops task. This gives the Akka runtime freedom to do adaptive automatic load-balancing, cluster rebalancing, replication & partitioning
appengine ja night #24 Google Cloud Endpoints and BigQuery (English)Ryo Yamasaki
Google Cloud Endpoints make it easy to use App Engine as a backend for client applications by generating client libraries for Android, iOS, and JavaScript. The document discusses how to develop APIs with Endpoints by annotating Java methods, testing APIs with the API Explorer, generating client libraries, and using the libraries to call APIs from client applications. Key annotations like @Api, @ApiMethod, and @Named are explained.
PuppetCamp SEA 1 - Puppet Deployment at OnAppWalter Heck
Wai Keen Woon, CTO CDN Division OnApp Malaysia, gave an interesting overview of what the Puppet architecture at OnApp looks like. The CDN division at OnApp is a large provider of CDN services, and as such makes a very interesting candidate for a case study.
This document provides an overview of new features in Java EE 7, including WebSocket, JSON processing, batch applications, concurrency utilities, simplified JMS, and more. It discusses these features and their availability in upcoming Liberty releases. The roadmap outlines IBM's plans to deliver a full Java EE 7 compliant WebSphere Application Server and continuous delivery of new features through Liberty. Related sessions at the conference are also listed.
Introducción a DSpace - Universidad Nacional del Altiplano, PunoElwin Huaman
DSpace es una plataforma de código abierto que permite crear repositorios institucionales para almacenar y preservar documentos digitales. Fue desarrollado originalmente por el MIT y HP en 2002. DSpace permite gestionar comunidades, colecciones e ítems con metadatos, y ofrece características como búsqueda, flujos de trabajo para revisión, preservación a largo plazo e interoperabilidad con otros sistemas a través de protocolos como OAI-PMH. Los repositorios creados con DSpace proporcion
El documento describe los repositorios de información como sitios centralizados para archivar y almacenar información digital. Existen diferentes tipos de repositorios públicos y privados para videos, música, fotografías y libros, donde los usuarios pueden subir y compartir o descargar este contenido. Derivan de la palabra latina "repositorium" que significa alacena o almacén.
El documento describe ProQuest y DSpace, dos bases de datos por suscripción que proveen acceso a documentos académicos. ProQuest contiene más de 11,000 revistas, 400 periódicos en texto completo, y 30,000 tesis. Fue fundada en 1938 y actualmente ofrece productos como ProQuest Dissertations & Theses, The Summon Service y ProQuest Central. DSpace es un software de código abierto utilizado para crear repositorios digitales académicos. Fue lanzado en 2002 por MIT y HP y actualmente es mantenido por DuraSpace.
Difusion Del Conocimiento Nuevos Tiempos Nuevas Perspectivas Foro VigoLolaPereira
Este documento discute la importancia de la difusión del conocimiento a través de publicaciones científicas y la necesidad de mejorar la calidad de las revistas españolas. Señala que la transferencia del conocimiento requiere una buena difusión y que las publicaciones cumplen funciones como establecer prioridades y apoyar la práctica profesional. También analiza los criterios de calidad editorial y científica de las publicaciones, así como las acciones necesarias para que las revistas sean más influyentes.
DSpace es un software de código abierto para crear repositorios digitales institucionales. Permite a las instituciones recopilar y preservar en un solo sistema una variedad de tipos de documentos digitales, incluidas publicaciones, datos de investigación y materiales académicos. Los repositorios creados con DSpace pueden ser indexados y descubiertos fácilmente a través de motores de búsqueda estándar.
Este documento describe los repositorios digitales institucionales, sus objetivos y características. Explica que un repositorio es una sede web que recoge y difunde la producción académica de una institución, permitiendo el acceso abierto a metadatos y textos completos. Los objetivos de los repositorios son la difusión, visibilidad, acceso abierto y preservación de la información académica. También describe tipos de repositorios, tecnologías utilizadas como DSpace o EPrints, y la situación actual de los repositorios en
Este documento describe los repositorios de recursos educativos, definidos como sitios web que permiten almacenar, buscar y descargar objetos de aprendizaje de diversos tipos para su uso en el aprendizaje mediado. Explica que los repositorios contienen objetos con metadatos para su localización y características como permitir modificaciones y búsqueda de recursos, además de favorecer la generación y reutilización de contenidos de aprendizaje.
Este documento presenta los elementos clave para construir un proyecto de investigación universitaria. Explica que la investigación es una función esencial de la universidad y debe considerarse una actividad académica fundamental. Luego, detalla los procesos básicos para generar investigación como la lectura crítica, experiencia laboral y participación en eventos académicos. Finalmente, describe los componentes de una propuesta o anteproyecto de investigación como la formulación del problema, objetivos, marco teórico y cronograma.
El documento describe los repositorios digitales institucionales, incluyendo su definición, características, tipos de contenido, implementación y software utilizado. Los repositorios digitales institucionales son sistemas en red que almacenan y proveen acceso a los documentos digitales generados por una institución, como tesis, artículos y presentaciones, con el fin de preservar y difundir el conocimiento institucional. El documento analiza estudios sobre el estado actual de los repositorios y provee detalles sobre sistemas de software comúnmente utilizados
Repositorios: definición, características y ejemplosJulio Cabrejos
Este documento define un repositorio como un sitio web donde se almacena información digital de forma pública como presentaciones, imágenes, videos y documentos. Explica que los repositorios ofrecen características como soporte para diferentes formatos, escalabilidad, interoperabilidad y búsquedas. Además, menciona algunos repositorios populares como YouTube para videos, Slideshare para presentaciones, Flickr para fotos y Scribd y Monografias para documentos.
The document discusses .NET and its future direction. It covers topics like the next generation JIT compiler, SIMD, runtime compilers, Roslyn, language innovations, Entity Framework, universal projects, .NET Native, cross-device capabilities, and partnerships like Xamarin. It also discusses openness, the .NET runtime being optimized for the cloud, and modular frameworks that can be deployed inside applications.
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
1. The document discusses integrating front-end frameworks like Angular, Ember, and React with Rails by constructing JSON APIs, preloading data to avoid loading screens, and server-side rendering for SEO and performance.
2. It provides code examples for building a TODO application with each framework, including using ngResource and factories in Angular, Ember conventions like Ember Data, and building isolated React components.
3. Server-side rendering is highlighted as the future for isomorphic JavaScript, providing benefits like prerendering on initial page load.
This document provides an overview and introduction to Nuclio, an open source serverless platform. Some key points:
- Nuclio is described as a new real-time serverless platform that is comprehensive, open, super fast, and can run anywhere. It provides high performance for serverless functions.
- It supports a variety of programming languages and event sources. Functions can be easily deployed and auto-scaled.
- Nuclio is presented as a solution for complex serverless applications through its data integration capabilities and high performance. Examples of real-time applications using Nuclio are described like fleet management, surveillance, and more.
iPhonical and model-driven software development for the iPhoneHeiko Behrens
These are the slides of my talk "iPhonical and model-driven software development on the iPhone" at the German iPhone Developer Conference 2009 in Cologne. Unfortunately, this version does not include the 25+ minutes demos I presented during the talk.
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017Amazon Web Services
Learn how to containerize common tools used in genomics for use on Amazon ECS, and then orchestrate workflows using these containerized tools with AWS Batch and AWS Step Functions. Participants have the opportunity to deploy a primary and secondary sequencing analysis workflow on AWS and learn some of the best practices for AWS Batch and Step Functions.
Learn how to containerize common tools used in genomics for use on Amazon ECS, and then orchestrate workflows using these containerized tools with AWS Batch and AWS Step Functions. Participants have the opportunity to deploy a primary and secondary sequencing analysis workflow on AWS and learn some of the best practices for AWS Batch and Step Functions.
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...DevOpsDays Tel Aviv
One of the critical factors for development velocity is software correctness. Our ability to develop and ship new features fast is bounded by our ability to validate several aspects of the change: * Does the feature meet the requirements? * How does the feature affect existing code, and how can it affect the production environment? With continues codebase growth and new features being added, naturally our productivity decreases, and our need to improve the guarantees for quality and correctness increase.
In this talk, I’ll focus on testing environments: why developers need a self-serve platform to create a full functioning environment on-demand, how such environments should be managed, and how can one restore part of the lost velocity. I’ll cover an internal system we use at AppsFlyer called ‘Namespaces’ that addresses the issue with the help of Mesos / Marathon, Docker, Traefik, and Consul.
Candidate details are provided for "Sufan Huang" for the position of "Junior Software Engineer". The document then provides functions for encountering a problem, planning a new project, and learning a new technology with details on requirements, tools, implementation, debugging, deployment and experience.
This document discusses serverless computing on AWS using AWS Lambda and AWS Fargate. It provides an overview of the anatomy of an AWS Lambda function, including the handler function, event and context objects, dependencies and common helper functions. It also describes how to structure serverless applications using Lambda functions and how AWS Lambda layers can be used to share common code between functions. Finally, it outlines the architecture of running serverless containers on AWS Fargate without having to manage servers or clusters.
This document discusses building advanced serverless applications with AWS Step Functions. It introduces AWS Step Functions as a service that allows coordinating multiple AWS services and serverless functions into state machines. It describes the different state types available in Step Functions like tasks, choices, and parallel processing. Examples are provided of using Step Functions for image processing workflows, serverless human approval tasks, and EBS snapshot management. The document concludes with encouraging the reader to build their own workflows with Step Functions.
AWS April Webinar Series - Getting Started with Amazon EC2 Container ServiceAmazon Web Services
How do you deploy and manage containerized applications at scale? Amazon ECS is a new AWS service that makes it easy to run and manage Docker-enabled applications across a cluster of Amazon EC2 instances. This webinar will familiarize you with the benefits of containers, introduce Amazon EC2 Container Service (ECS), and demonstrate how to use Amazon ECS for your applications. You will learn how to define, schedule, and stop sets of containers. You will also learn how to access the state of your resources to view running tasks and EC2 instance utilization in your cluster.
Learning Objectives:
• Understand the benefits of containers
• Define and deploy containers on Amazon ECS
• Access cluster state information to track utilization and unning tasks
• Integrate Amazon ECS into your existing software release process or CI/CD (Continuous Integration / Continuous Delivery) pipeline
Who Should Attend:
• Developers, system administrators, Docker users, container users
Building Web Scale Apps with Docker and Mesos by Alex Rukletsov (Mesosphere)Docker, Inc.
Operating apps at web scale has become the new normal, but has been out of reach for most companies. Join us as we show you how to deploy and manage your Docker containers at scale. See how easy it is to build highly-available, fault-tolerant web scale apps using Docker with the Mesos cluster scheduler. Docker plus Mesos is a new way to scale applications. Together they give you capabilities similar to Google’s Borg, the Googleplex’s secret weapon of scalability and fault tolerance.
1) The document discusses AWS Step Functions and how it can be used to coordinate serverless applications and functions. It provides examples of how Step Functions allows for sequencing, branching, parallelism and error handling of functions.
2) The document demonstrates how to define state machines in JSON and visualize them in the AWS Step Functions console. It also shows how to execute state machines reliably over long periods of time compared to Lambda functions.
3) Use cases like image processing, approval workflows and EBS snapshot management are demonstrated as examples of problems that can be solved with Step Functions state machines to coordinate multiple serverless functions and services.
This document provides an overview of serverless development using AWS Lambda. It discusses common use cases for serverless applications including web apps, data processing, chatbots, backends, and IT automation. It also covers topics like pricing, resource allocation, available event sources and services, and development tools. The document contains code samples and screenshots related to building serverless applications on AWS Lambda.
Decompose the monolith into AWS Step FunctionsbeSharp
This document discusses the process of refactoring a monolithic backup and recovery application into microservices using AWS Step Functions and Lambda functions. Key points:
1. The application was originally a monolithic SaaS application for backing up and recovering cloud infrastructure.
2. Recovery procedures were long-running and needed to be decomposed and orchestrated in a maintainable way.
3. AWS Step Functions was chosen as it allows modeling workflows as state machines using tasks, choices, and waits.
4. Lambda functions were used to implement tasks, with business logic separated into layers accessing data and AWS services.
5. The recovery workflow for an RDS instance is shown as an example, using
Ruby is designed to make programmers happy by providing simplicity, openness, and an object-oriented yet dynamic programming experience. It aims to focus on humans rather than machines. Ruby promotes productivity through conventions that speed development and testing. Programmers enjoy coding in Ruby due to its immediate feedback and morale boost. Ruby has broad utility across web, text, and GUI applications and is platform agnostic, running on most operating systems.
The document describes a scripting framework for automating provisioning workflows for Acme Net-Net Central using JavaScript. It allows designing and implementing provisioning solutions, defining templates, adding transaction management, connecting with a CRM system, and monitoring the provisioning process. The framework provides a unified API interface and uses JavaScript to manage all phases for increased flexibility, reusability and reduced implementation time.
PeopleSoft: HACK THE Planet^W universityDmitry Iudin
This document summarizes security vulnerabilities in PeopleSoft systems. It describes how an attacker could potentially gain remote code execution on the PeopleSoft web server and application server. It then explains how the attacker could use this access to decrypt database credentials and escalate their privileges to compromise sensitive user data and business systems. The document provides details on specific bugs like buffer overflows and hardcoded credentials that could be exploited at different points in this attack chain. It aims to demonstrate a potential "hardcore" attack scenario and the risks of unpatched PeopleSoft instances.
Similar to DDSUG 2009 Back-porting DSpace 2.0 Services to DSpace 1.6.0 (20)
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...alexjohnson7307
Predictive maintenance is a proactive approach that anticipates equipment failures before they happen. At the forefront of this innovative strategy is Artificial Intelligence (AI), which brings unprecedented precision and efficiency. AI in predictive maintenance is transforming industries by reducing downtime, minimizing costs, and enhancing productivity.
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
A Comprehensive Guide to DeFi Development Services in 2024Intelisync
DeFi represents a paradigm shift in the financial industry. Instead of relying on traditional, centralized institutions like banks, DeFi leverages blockchain technology to create a decentralized network of financial services. This means that financial transactions can occur directly between parties, without intermediaries, using smart contracts on platforms like Ethereum.
In 2024, we are witnessing an explosion of new DeFi projects and protocols, each pushing the boundaries of what’s possible in finance.
In summary, DeFi in 2024 is not just a trend; it’s a revolution that democratizes finance, enhances security and transparency, and fosters continuous innovation. As we proceed through this presentation, we'll explore the various components and services of DeFi in detail, shedding light on how they are transforming the financial landscape.
At Intelisync, we specialize in providing comprehensive DeFi development services tailored to meet the unique needs of our clients. From smart contract development to dApp creation and security audits, we ensure that your DeFi project is built with innovation, security, and scalability in mind. Trust Intelisync to guide you through the intricate landscape of decentralized finance and unlock the full potential of blockchain technology.
Ready to take your DeFi project to the next level? Partner with Intelisync for expert DeFi development services today!
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on automated letter generation for Bonterra Impact Management using Google Workspace or Microsoft 365.
Interested in deploying letter generation automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Tatiana Kojar
Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our AI development, reaffirming our commitment to delivering top-tier AI solutions. Skybuffer AI harnesses all the innovative capabilities of the SAP BTP in the AI domain, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG). It also helps SAP customers safeguard their investments into SAP Conversational AI and ensure a seamless, one-click transition to SAP Business AI.
With Skybuffer AI, various AI models can be integrated into a single communication channel such as Microsoft Teams. This integration empowers business users with insights drawn from SAP backend systems, enterprise documents, and the expansive knowledge of Generative AI. And the best part of it is that it is all managed through our intuitive no-code Action Server interface, requiring no extensive coding knowledge and making the advanced AI accessible to more users.
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
3. But is it Their Fault?
Pioneer Argonne computer scientist Jean F. Hall.
4. But is it Their Fault?
No, Developers:
Pioneer Argonne computer scientist Jean F. Hall.
5. But is it Their Fault?
No, Developers:
Need to Innovate
Pioneer Argonne computer scientist Jean F. Hall.
6. But is it Their Fault?
No, Developers:
Need to Innovate
Need to change code
Pioneer Argonne computer scientist Jean F. Hall.
7. But is it Their Fault?
No, Developers:
Need to Innovate
Need to change code
Need to solve immediate
issues formost.
Pioneer Argonne computer scientist Jean F. Hall.
8. Static code is not extensible...
public class StaticManager {
public static Object getSomething(Object object) {
SomeOtherManager.doSomethingElse(...);
}
}
10. Consider Anti-Patterns
Hardcoding:
Configuration is hardcoded into static “Managers”
Database CRUD is hardcoded into DpaceObjects.”
11. Consider Anti-Patterns
Hardcoding:
Configuration is hardcoded into static “Managers”
Database CRUD is hardcoded into DpaceObjects.”
God Object:
ConfigurationManager, Context, DSpaceObject
Concentrate too much functionality in a class
12. Consider Anti-Patterns
Hardcoding:
Configuration is hardcoded into static “Managers”
Database CRUD is hardcoded into DpaceObjects.”
God Object:
ConfigurationManager, Context, DSpaceObject
Concentrate too much functionality in a class
JAR Hell:
Users resort to classpath ordering to overload core API.
User override classes directly to change behavior.
15. Importance to @mire?
Many clients with similar need for
customization.
All Products dependent on DSpace.
16. Importance to @mire?
Many clients with similar need for
customization.
All Products dependent on DSpace.
We have to guaruntee upgrade path.
17. Importance to @mire?
Many clients with similar need for
customization.
All Products dependent on DSpace.
We have to guaruntee upgrade path.
Need stability and modularity in DSpace.
22. Services: Can Help
Removes Hardcode:
Data Models are anemic, Services implemented
separate from interfaces used by applications.
23. Services: Can Help
Removes Hardcode:
Data Models are anemic, Services implemented
separate from interfaces used by applications.
Lessens JAR Hell:
API contracts, default implementations off limits.
Want to change behavior, write changes separately.
24. Services: Can Help
Removes Hardcode:
Data Models are anemic, Services implemented
separate from interfaces used by applications.
Lessens JAR Hell:
API contracts, default implementations off limits.
Want to change behavior, write changes separately.
Removes God Objects:
Services separate functional areas, separate Data
Models without interdependency assure separation.
29. Services: Architecture:
services-util services-api services-impl
/* Instantiate the Utility Class */
DSpace dspace = new DSpace();
/* Access get the Service Manager by convenience method */
ServiceManager manager = dspace.getServiceManager();
/* Or access by convenience method for default services */
EventService service = dspace.getEventService();
<<Interface>>
DSpace
ServiceManager
<<Interface>>
EventService
32. Services: Default Services
dspace-xmlui-webapp services-util
Spring Application Context
DSpace
services-api
registerService <<Interface>>
Your Own Services
ServiceManager
Your Own Event registerEventListener <<Interface>>
Listeners EventService
addConfiguration
<<Interface>>
Your Own Configs
ConfigurationService
addInterceptor
Your Own Request <<Interface>>
Interceptors RequestService
<<Interface>>
SessionService
40. Proposed Next Steps:
Integrate remaining Services
DSpaceDataSource: DB Connection Pool
UserService: Auth and Permissions
41. Proposed Next Steps:
Integrate remaining Services
DSpaceDataSource: DB Connection Pool
UserService: Auth and Permissions
StorageService: ContentStorage
42. Proposed Next Steps:
Integrate remaining Services
DSpaceDataSource: DB Connection Pool
UserService: Auth and Permissions
StorageService: ContentStorage
MetaRegistryService: Content Models,
Metadata Schema, DCMI Application Profiles.
43. Proposed Next Steps:
Integrate remaining Services
DSpaceDataSource: DB Connection Pool
UserService: Auth and Permissions
StorageService: ContentStorage
MetaRegistryService: Content Models,
Metadata Schema, DCMI Application Profiles.
SearchService: Unified search and browse
44. Proposed Next Steps:
Integrate remaining Services
DSpaceDataSource: DB Connection Pool
UserService: Auth and Permissions
StorageService: ContentStorage
MetaRegistryService: Content Models,
Metadata Schema, DCMI Application Profiles.
SearchService: Unified search and browse
MappingService: External Identifier Mapping to
DSpace objects.
47. Proposed Next Steps:
Replacement of Legacy Managers
EventManager <-------------------------------- EventService
ConfigurationManager <-------------- ConfigurationService
48. Proposed Next Steps:
Replacement of Legacy Managers
EventManager <-------------------------------- EventService
ConfigurationManager <-------------- ConfigurationService
DatabaseManager <---------- DSpaceDataSource Service
49. Proposed Next Steps:
Replacement of Legacy Managers
EventManager <-------------------------------- EventService
ConfigurationManager <-------------- ConfigurationService
DatabaseManager <---------- DSpaceDataSource Service
EPerson/ResourceBundle <-------------------- UserService
50. Proposed Next Steps:
Replacement of Legacy Managers
EventManager <-------------------------------- EventService
ConfigurationManager <-------------- ConfigurationService
DatabaseManager <---------- DSpaceDataSource Service
EPerson/ResourceBundle <-------------------- UserService
DSO and BitstreamStorage <------------- StorageService
51. Proposed Next Steps:
Replacement of Legacy Managers
EventManager <-------------------------------- EventService
ConfigurationManager <-------------- ConfigurationService
DatabaseManager <---------- DSpaceDataSource Service
EPerson/ResourceBundle <-------------------- UserService
DSO and BitstreamStorage <------------- StorageService
Search and Configurable Browse <--------- SearchSevice
52. Proposed Next Steps:
Remove God Objects
DSpace
Database
Manager
Database
Pool
Context
DB
cac
ID
he
Authentication
Manager
53. Proposed Next Steps:
Remove God Objects
DSpace
Database
Manager
Database Context is composite object
Pool
Context
DB
cac
ID
he
Authentication
Manager
54. Proposed Next Steps:
Remove God Objects
DSpace
Database
Manager
Database Context is composite object
Pool
Gets passed around everywhere
Context
DB
cac
ID
he
Authentication
Manager
55. Proposed Next Steps:
Remove God Objects
DSpace
Database
Manager
Database Context is composite object
Pool
Gets passed around everywhere
Context
Represents:
DB
cac
ID
he
Authentication
Manager
56. Proposed Next Steps:
Remove God Objects
DSpace
Database
Manager
Database Context is composite object
Pool
Gets passed around everywhere
Context
Represents:
DB
cac
State, Identity, Transaction
ID
he
Authentication
Manager
57. Proposed Next Steps:
Kernel as “Context Container”
DSpace Kernel Service
Manager
Session
Session
Service
Request
Request
Service
Your Cache
Code Service
User
Service
Data
Source
Service
59. Proposed Next Steps:
Liberate the Implementation
Remove Static Accessors allowing for proper API
contracts and usage of Extensibility.
60. Proposed Next Steps:
Liberate the Implementation
Remove Static Accessors allowing for proper API
contracts and usage of Extensibility.
Decouple Initialization of “StaticManagers” as
Services into either core Spring, Guice or Application
startup.
61. Proposed Next Steps:
Liberate the Implementation
Remove Static Accessors allowing for proper API
contracts and usage of Extensibility.
Decouple Initialization of “StaticManagers” as
Services into either core Spring, Guice or Application
startup.
Enforce contracts and backward compatability
as a community practice to assure reliable API +
Services.
64. In Summary
DSpace 2.0 is successful project to date.
Yet, will take multiple releases to integrate.
65. In Summary
DSpace 2.0 is successful project to date.
Yet, will take multiple releases to integrate.
Work is incremental, projects need to be tractable.
66. In Summary
DSpace 2.0 is successful project to date.
Yet, will take multiple releases to integrate.
Work is incremental, projects need to be tractable.
Work needs to be kept close to the trunk
67. In Summary
DSpace 2.0 is successful project to date.
Yet, will take multiple releases to integrate.
Work is incremental, projects need to be tractable.
Work needs to be kept close to the trunk
DSpace Services are here as the first step.
68. In Summary
DSpace 2.0 is successful project to date.
Yet, will take multiple releases to integrate.
Work is incremental, projects need to be tractable.
Work needs to be kept close to the trunk
DSpace Services are here as the first step.
Faster when we all collaborate in migration activities.
69. In Summary
DSpace 2.0 is successful project to date.
Yet, will take multiple releases to integrate.
Work is incremental, projects need to be tractable.
Work needs to be kept close to the trunk
DSpace Services are here as the first step.
Faster when we all collaborate in migration activities.
Could always use a little more “$upport”
What do we think is the problem?
Community Developers need to maintain and improve DSpace.
End User Developers need to Customize installations.
Developers manipulating same code.
Results in Developers butting heads over merging contributions and new versions.
repeated changes to adapt DSpace to new customizations.
But is it the developers fault that these conflict occur?
No, its not their fault?
Need to innovate,
Need to change code,
Need to solve immediate issues first.
But is it the developers fault that these conflict occur?
No, its not their fault?
Need to innovate,
Need to change code,
Need to solve immediate issues first.
But is it the developers fault that these conflict occur?
No, its not their fault?
Need to innovate,
Need to change code,
Need to solve immediate issues first.
But is it the developers fault that these conflict occur?
No, its not their fault?
Need to innovate,
Need to change code,
Need to solve immediate issues first.
While DSpace Static Manager Design is simple. While they helped original developers be innovative and get their job done, they now limit us in the DSpace of today.
And static methods do not make an API, Application Programming Interface)
static methods are not extensible. Static methods cannot be overridden or re-implemented
And we have a lot of these in DSpace
Examples: PluginManager, ConfigurationManager, DatabaseManager, BitstreamStorageManager
They are even present in DSpaceObject Model
Static method even reference into other static Manager methods hardcoded in implementation.
Users forced to customize static methods directly
Repackaging modules: same Class, different behavior.
Everyone (Users and Developers) are changing the implementation directly.
So, Anti-patterns represent possibly bad practices we might wnat to consider avoiding in the codebase.
I can identify a few in both DSpace and how we use/customize it...
[click] Hardcoding the Initialization of Configuration
Hardcoding Database Access into Data Model.
[click] God Objects,
ConfigurationManager (config, but also templates and logging)
Context (db, events, cache, authen)
DSpaceObject (data model and storage)
[click] JAR Hell, users have to alter source and override implementation to change behavior
Continuing practice with Maven and Overlays... leads to &#x201C;jar hell&#x201D; and &#x201C;classloader hell&#x201D; where users change behavior by readding same class with changes in front of original ont he classpath.
Not in criticism of all the hard work that went into DSpace initially.
But an analysis of the codebase given best practices that evolved since its creation.
So, Anti-patterns represent possibly bad practices we might wnat to consider avoiding in the codebase.
I can identify a few in both DSpace and how we use/customize it...
[click] Hardcoding the Initialization of Configuration
Hardcoding Database Access into Data Model.
[click] God Objects,
ConfigurationManager (config, but also templates and logging)
Context (db, events, cache, authen)
DSpaceObject (data model and storage)
[click] JAR Hell, users have to alter source and override implementation to change behavior
Continuing practice with Maven and Overlays... leads to &#x201C;jar hell&#x201D; and &#x201C;classloader hell&#x201D; where users change behavior by readding same class with changes in front of original ont he classpath.
Not in criticism of all the hard work that went into DSpace initially.
But an analysis of the codebase given best practices that evolved since its creation.
So, Anti-patterns represent possibly bad practices we might wnat to consider avoiding in the codebase.
I can identify a few in both DSpace and how we use/customize it...
[click] Hardcoding the Initialization of Configuration
Hardcoding Database Access into Data Model.
[click] God Objects,
ConfigurationManager (config, but also templates and logging)
Context (db, events, cache, authen)
DSpaceObject (data model and storage)
[click] JAR Hell, users have to alter source and override implementation to change behavior
Continuing practice with Maven and Overlays... leads to &#x201C;jar hell&#x201D; and &#x201C;classloader hell&#x201D; where users change behavior by readding same class with changes in front of original ont he classpath.
Not in criticism of all the hard work that went into DSpace initially.
But an analysis of the codebase given best practices that evolved since its creation.
[click] Many clients with similar need for customization.
[click] All Products dependent on DSpace, in some cases we have some cases, we too overlay existing dspace-api classes and are subject to these problems during upgrading.
[click] But, as a commercial company, we NEED to guarantee upgrade path for our clients.
[click] Thus we really need stable and clearly defined API in DSpace. Both for reliability and for our own customiations.
[click] Many clients with similar need for customization.
[click] All Products dependent on DSpace, in some cases we have some cases, we too overlay existing dspace-api classes and are subject to these problems during upgrading.
[click] But, as a commercial company, we NEED to guarantee upgrade path for our clients.
[click] Thus we really need stable and clearly defined API in DSpace. Both for reliability and for our own customiations.
[click] Many clients with similar need for customization.
[click] All Products dependent on DSpace, in some cases we have some cases, we too overlay existing dspace-api classes and are subject to these problems during upgrading.
[click] But, as a commercial company, we NEED to guarantee upgrade path for our clients.
[click] Thus we really need stable and clearly defined API in DSpace. Both for reliability and for our own customiations.
[click] Many clients with similar need for customization.
[click] All Products dependent on DSpace, in some cases we have some cases, we too overlay existing dspace-api classes and are subject to these problems during upgrading.
[click] But, as a commercial company, we NEED to guarantee upgrade path for our clients.
[click] Thus we really need stable and clearly defined API in DSpace. Both for reliability and for our own customiations.
But what is modularity... separating the code into smaller and more specific projects.
We work to separate the libraries into Functionally separate units.
Use dependency relationships to clarify inter-dependencies.
But... Have to be cautious that we don&#x2019;t increase complexity that we are seeking to reduce.
We do need modularity. But, modularity is not a complete solution on its own. We need something else...
We need to eliminate dependencies where ever we can and focus on implementations not being tightly bound to other implementations.
[click] and most importantly, we need to identify key important interfaces as contracts within the application.
API are contracts, implementation are separate. What to change something, write your own service or reimplement an existing service.Everything is replaceable. Everything is packaged separately.
Removes Hardcode: Data Models are anemic, Services implemented separate from interfaces used by applications.
Lessens JAR Hell: API contracts, default implementations off limits.Want to change behavior, write changes separately.
Removes God Objects: Services separate functional areas, separate Data Models without interdependency assure separation.
API are contracts, implementation are separate. What to change something, write your own service or reimplement an existing service.Everything is replaceable. Everything is packaged separately.
Removes Hardcode: Data Models are anemic, Services implemented separate from interfaces used by applications.
Lessens JAR Hell: API contracts, default implementations off limits.Want to change behavior, write changes separately.
Removes God Objects: Services separate functional areas, separate Data Models without interdependency assure separation.
API are contracts, implementation are separate. What to change something, write your own service or reimplement an existing service.Everything is replaceable. Everything is packaged separately.
Removes Hardcode: Data Models are anemic, Services implemented separate from interfaces used by applications.
Lessens JAR Hell: API contracts, default implementations off limits.Want to change behavior, write changes separately.
Removes God Objects: Services separate functional areas, separate Data Models without interdependency assure separation.
Not actually part of the DSPace 1.6.0 trunk
More like a 3rd party dependency
Released separately under its own revision path
Dividied into 3 projects
API ....
ConfigurationService: Configuration properties for the DSpace system
Event Service: Register Event Listeners. Generate Events.
Request Service: Transactional window for completing tasks.
Provides hooks for Request Interceptors to
allow other services to participate in the transaction.
Session Service: Provides a state across requests.
Caching Service: Holds onto references to objects for later use.
Point out that :
Contains configuration User defined Asynchronous DSpace Services.
exists in both XMLUI and JSPUI
Note that more files can be added here,
Which is a more appropriate use of overlays that replacing files wholesale.
Spring XML configuration example
Same analogy in Java
But there are other ways as well. Google Guice, annotations, etc.
So our first reall example of service usage in DSpace 1.6
An example of firing events..
Request is transactional window
User can get it from Request service
Not passed around
Retained in Thread Local
Database Connection no longer transactional window (not present in 1.6)
Code must register Request-Interceptors to close database transactions.
Inversion of Control will free the User/Developer to be able to choose the appropriate configuration and modules used by DSpace. However, we may want to port whatever we can in DSpace 1.x to retain a continuum of the intelligent work and bug fixes that have gone into 1.x
Rather than Hardcoded Initialization forcing DSpace Users to accept DSpace existing Configuration. Or altering that implmentation directly.
Decide what implementations should be isolated from API directly used by users customizing DSpace.
Inversion of Control will free the User/Developer to be able to choose the appropriate configuration and modules used by DSpace. However, we may want to port whatever we can in DSpace 1.x to retain a continuum of the intelligent work and bug fixes that have gone into 1.x
Rather than Hardcoded Initialization forcing DSpace Users to accept DSpace existing Configuration. Or altering that implmentation directly.
Decide what implementations should be isolated from API directly used by users customizing DSpace.
Inversion of Control will free the User/Developer to be able to choose the appropriate configuration and modules used by DSpace. However, we may want to port whatever we can in DSpace 1.x to retain a continuum of the intelligent work and bug fixes that have gone into 1.x
Rather than Hardcoded Initialization forcing DSpace Users to accept DSpace existing Configuration. Or altering that implmentation directly.
Decide what implementations should be isolated from API directly used by users customizing DSpace.
[click] DSpace 2.0 is a successful, but immense and multifaceted project.
[click] Will take multiple version releases introducing new functionality as we go
[click] Work is incremental, projects need to remain tractable and adopted quickly
[click] Work needs to be kept close to the trunk where it can be integrated.
[click] Services are here as the first step towards that integration.
[click] All Developers need to plan together to for these migrations
My ultimate hope is to emphasize to the community the immense need for you to come forward and contribute within the DSpace developers group, not only working on 2.0, but also on the neccessary effort that will be needed to bring these needed improvements to mainstream usage within the DSpace community.
In doing this integration of dspace-services into DSpace 1.6.0 my interest is in assuring the preservation of this effort by spearheading its adoption onto the community.
[click] DSpace 2.0 is a successful, but immense and multifaceted project.
[click] Will take multiple version releases introducing new functionality as we go
[click] Work is incremental, projects need to remain tractable and adopted quickly
[click] Work needs to be kept close to the trunk where it can be integrated.
[click] Services are here as the first step towards that integration.
[click] All Developers need to plan together to for these migrations
My ultimate hope is to emphasize to the community the immense need for you to come forward and contribute within the DSpace developers group, not only working on 2.0, but also on the neccessary effort that will be needed to bring these needed improvements to mainstream usage within the DSpace community.
In doing this integration of dspace-services into DSpace 1.6.0 my interest is in assuring the preservation of this effort by spearheading its adoption onto the community.
[click] DSpace 2.0 is a successful, but immense and multifaceted project.
[click] Will take multiple version releases introducing new functionality as we go
[click] Work is incremental, projects need to remain tractable and adopted quickly
[click] Work needs to be kept close to the trunk where it can be integrated.
[click] Services are here as the first step towards that integration.
[click] All Developers need to plan together to for these migrations
My ultimate hope is to emphasize to the community the immense need for you to come forward and contribute within the DSpace developers group, not only working on 2.0, but also on the neccessary effort that will be needed to bring these needed improvements to mainstream usage within the DSpace community.
In doing this integration of dspace-services into DSpace 1.6.0 my interest is in assuring the preservation of this effort by spearheading its adoption onto the community.
[click] DSpace 2.0 is a successful, but immense and multifaceted project.
[click] Will take multiple version releases introducing new functionality as we go
[click] Work is incremental, projects need to remain tractable and adopted quickly
[click] Work needs to be kept close to the trunk where it can be integrated.
[click] Services are here as the first step towards that integration.
[click] All Developers need to plan together to for these migrations
My ultimate hope is to emphasize to the community the immense need for you to come forward and contribute within the DSpace developers group, not only working on 2.0, but also on the neccessary effort that will be needed to bring these needed improvements to mainstream usage within the DSpace community.
In doing this integration of dspace-services into DSpace 1.6.0 my interest is in assuring the preservation of this effort by spearheading its adoption onto the community.
[click] DSpace 2.0 is a successful, but immense and multifaceted project.
[click] Will take multiple version releases introducing new functionality as we go
[click] Work is incremental, projects need to remain tractable and adopted quickly
[click] Work needs to be kept close to the trunk where it can be integrated.
[click] Services are here as the first step towards that integration.
[click] All Developers need to plan together to for these migrations
My ultimate hope is to emphasize to the community the immense need for you to come forward and contribute within the DSpace developers group, not only working on 2.0, but also on the neccessary effort that will be needed to bring these needed improvements to mainstream usage within the DSpace community.
In doing this integration of dspace-services into DSpace 1.6.0 my interest is in assuring the preservation of this effort by spearheading its adoption onto the community.
[click] DSpace 2.0 is a successful, but immense and multifaceted project.
[click] Will take multiple version releases introducing new functionality as we go
[click] Work is incremental, projects need to remain tractable and adopted quickly
[click] Work needs to be kept close to the trunk where it can be integrated.
[click] Services are here as the first step towards that integration.
[click] All Developers need to plan together to for these migrations
My ultimate hope is to emphasize to the community the immense need for you to come forward and contribute within the DSpace developers group, not only working on 2.0, but also on the neccessary effort that will be needed to bring these needed improvements to mainstream usage within the DSpace community.
In doing this integration of dspace-services into DSpace 1.6.0 my interest is in assuring the preservation of this effort by spearheading its adoption onto the community.
[click] DSpace 2.0 is a successful, but immense and multifaceted project.
[click] Will take multiple version releases introducing new functionality as we go
[click] Work is incremental, projects need to remain tractable and adopted quickly
[click] Work needs to be kept close to the trunk where it can be integrated.
[click] Services are here as the first step towards that integration.
[click] All Developers need to plan together to for these migrations
My ultimate hope is to emphasize to the community the immense need for you to come forward and contribute within the DSpace developers group, not only working on 2.0, but also on the neccessary effort that will be needed to bring these needed improvements to mainstream usage within the DSpace community.
In doing this integration of dspace-services into DSpace 1.6.0 my interest is in assuring the preservation of this effort by spearheading its adoption onto the community.
We really need to thank Aaron Zeckoski for providing us with dspace-services.
We would not have this solution if it were not for his initiative and the contribution of his time by CARET and funding by JISC.
We really need to thank Aaron Zeckoski for providing us with dspace-services.
We would not have this solution if it were not for his initiative and the contribution of his time by CARET and JISC.