CollectionSpace Service Behind the scenes June 2009 Face-to-face Sanjay Dalal U.C. Berkeley IST/Data Services.

Slides:



Advertisements
Similar presentations
Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
Advertisements

1 Ontolog Open Ontology Repository Review 19 February 2009.
CollectionSpace Show-and-Tell presentation for BNHM-IST Partnership April 3, 2009.
CollectionSpace for Technology Service Providers and Developers October 22,
Megan Forbes Project Manager & Functional Lead Museum of the Moving Image.
CollectionSpace is an open-source, web- based software application for the description, management, and dissemination of museum collections information.
CollectionSpace for Technology Service Providers and Developers October 22,
CollectionSpace for Museum and Academic Technology Professionals October 29,
CollectionSpace for Technology Service Providers and Developers October 22,
©2003 aQute, All Rights Reserved Tokyo, August 2003 : 1 OSGi Service Platform Tokyo August 28, 2003 Peter Kriens CEO aQute, OSGi Fellow
AQute Eclipse Environment By Peter Kriens CEO aQute OSGi Director of Technology and OSGi Fellow.
JAX-RS – REST in Java.
Copyright © 2010 Accenture All Rights Reserved. 1 Copyright © 2010 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
RESTful Web Services Senthil Chinnaiyan, Senior Architect
Natural Business Services for Construct Users Mark Barnard R&D Manager – Natural Business Services.
OpusCollege and Spring-DM. OSGi based web applications – three strategies OSGi container embedded in another container: OSGi Bridge Server (OBS)  e.g.
1 Integration Made Easy Agile Integration: Connecting Salesforce With Your Enterprise.
A Blackboard Building Block™ Crash Course for Web Developers
Web Services Web Services are the basic fundamental building blocks of invoking features that can be accessed by an application program. The accessibility.
Futures – Alpha Cloud Deployment and Application Management.
Scale Up Access to your 4GL Application using Web Services
1 CENTER FOR PARALLEL COMPUTERS An Introduction to Globus Toolkit® 3 -Developing Interoperable Grid services.
Why OSGi matters for Enterprise Java Infrastructures
Apache Axis2 - OSGi Integration in WSO2 Carbon Platform
Next Generation Node (NGN) Technical Overview April 2007.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
Peoplesoft: Building and Consuming Web Services
Fraser Technical Solutions, LLC
Application Packaging Standard Fundamentals
OSGi.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
Introduction to J2EE Architecture Portions by Kunal Mehta.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
Migrating Desktop The graphical framework for running grid applications Bartek Palak Poznan Supercomputing and Networking Center The.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Webservice versioning using osgi Allard Buijze, Jettro Coenradie.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
@2008 Huynh Ngoc Tin Chapter #2 JAVA SERVLET PRGRAMMING.
© 2006 Intland Software1 Aron Gombas Architect, Intland Software Extending & customizing CodeBeamer.
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
1 Registry Services Overview J. Steven Hughes (Deputy Chair) Principal Computer Scientist NASA/JPL 17 December 2015.
A Technical Overview Bill Branan DuraCloud Technical Lead.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
15 Copyright © 2004, Oracle. All rights reserved. Adding JAAS Security to the Client.
8 Copyright © 2004, Oracle. All rights reserved. Making the Model Secure.
Introduction to OSGi +ActorFrame Surya Bahadur Kathayat
VOX Project Status T. Levshina. 5/7/2003LCG SEC meetings2 Goals, team and collaborators Purpose: To facilitate the remote participation of US based physicists.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
RELOAD Overview Bill Olivier Bolton Institute. RELOAD Aims Standards-based Editor and Runtime toolset –Metadata –Content Packaging –SCORM (& ideally Simple.
Developers Introduction to the Power BI Platform.
The Holmes Platform and Applications
CS3220 Web and Internet Programming RESTful Web Service
Eclipse Vorto Alexander Edelmann.
Automate Custom Solutions Deployment on Office 365 and Azure
Office 365 Development July 2014.
Overall Architecture and Component Model
Introduction to J2EE Architecture
EPIC INFOTECH CONSULTING GROUP
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
LitwareHR v2: an S+S reference application
Introduction to Web Services
敦群數位科技有限公司(vanGene Digital Inc.) 游家德(Jade Yu.)
Distributed System using Web Services
Remedy Integration Strategy Leverage the power of the industry’s leading service management solution via open APIs February 2018.
Plug-In Architecture Pattern
Presentation transcript:

CollectionSpace Service Behind the scenes June 2009 Face-to-face Sanjay Dalal U.C. Berkeley IST/Data Services

Agenda Interfacing with Nuxeo A CollectionSpace service –Nuxeo Document Type –RESTful Resource Deployment Architecture Multi-tenancy aspects 2CollectionSpace

Service layer cake CollectionSpace3

Splitting the cake Why? Prototypical Nuxeo RESTful APIs (only supports document repository, no support for XML complex type, have to use export vs. get) Nuxeos Java Local APIs force to run inside the Nuxeo container Co-located (same addressspace) CS and Nuxeo using Java Remote APIs was not possible due to class loading issues 4 Nuxeo Java Remote APIs Nuxeo Client

CollectionObject service Contract –Schema –APIs RESTful Resource using JAX-RS 5CollectionSpace

CollectionObject Entity Schema CollectionSpace6

Nuxeo document type for CollectionObject OSGI-INF/core-types-contrib.xml … /> 7

collectionobject-common.xsd <xs:schema xmlns:xs=" xmlns:ns=" xmlns=" targetNamespace=" version="0.1"> * flat schema – used due to limitations of Nuxeo RESTful APIs. No more needed with Nuxeo Java Remote APIs. 8CollectionSpace

Develop @Produces("application/xml") public class CollectionObjectResource extends CollectionSpaceResource public Response createCollectionObject(CollectionObject co) { public CollectionObject String id) public CollectionObject String id, CollectionObject theUpdate) { public void String id) { … public CollectionObjectList UriInfo ui) { … } } 9

Develop JAX-RS public Response createCollectionObject(CollectionObject co) { … RepositoryInstance repoSession = getRepositorySession(); DocumentRef nuxeoWspace = new IdRef(CS_COLLECTIONOBJECTS_WORKSPACE_UID); DocumentModel wspaceCOs = repoSession.getDocument(nuxeoWspace); String wspacePath = wspaceCOs.getPathAsString(); String docType = CollectionObject"; String id = IdUtils.generateId("New " + docType); DocumentModel coDoc = repoSession.createDocumentModel(wspacePath, id, docType); fillDocument(co, coDoc); coDoc = repoSession.createDocument(coDoc); repoSession.save(); co.setId(coDoc.getId()); … UriBuilder path = UriBuilder.fromResource(CollectionObjectResource.class); path.path("" + co.getId()); Response response = Response.created(path.build()).build(); return response; } 10CollectionSpace

Register resource with JAX-RS Application public class CollectionSpaceApplication extends Application { private Set singletons = new HashSet (); private Set > empty = new HashSet >(); public CollectionSpaceApplication() { singletons.add(new CollectionObjectResource()); public Set > getClasses() { return empty; public Set getSingletons() { return singletons; } CollectionSpace11

Package Nuxeo document type as OSGI component ( jar META-INF/MANIFEST.MF) Manifest-Version: 1.0 Bundle-ManifestVersion: 1 Bundle-Name: NuxeoCS Bundle-SymbolicName: org.collectionspace.collectionobject;singleton:=true Bundle-Version: Bundle-Localization: plugin Bundle-Vendor: Nuxeo Require-Bundle: org.nuxeo.runtime, org.nuxeo.ecm.core.api, org.nuxeo.ecm.core, org.nuxeo.ecm.core.api, org.nuxeo.ecm.platform.types.api, org.nuxeo.ecm.platform.versioning.api, org.nuxeo.ecm.platform.ui, org.nuxeo.ecm.platform.forms.layout.client, org.nuxeo.ecm.platform.publishing.api, org.nuxeo.ecm.platform.ws Provide-Package: org.collectionspace.collectionobject Nuxeo-Component: OSGI-INF/core-types-contrib.xml, OSGI-INF/ecm-types-contrib.xml, OSGI-INF/layouts-contrib.xml 12

Package resource as web-app (war WEB-INF/web.xml) javax.ws.rs.Application org.collectionspace.hello.services.CollectionSpaceApplication resteasy.servlet.mapping.prefix /cspace-nuxeo /context-param> org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap Resteasy org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher Resteasy /cspace-nuxeo/* 13

Deployment Architecture 14

CollectionSpace as a web-based software service that is centrally deployed and maintained and where collections of different institutions are managed. Multi-tenancy aspects 1.One or more Berkeley museums sharing the same CollectionSpace deployment 2.One or more small and mid-size museums using CollectionSpace service provided by a 3 rd party CollectionSpace15

Multi-tenancy aspects Security, Storage, Metadata, Administration, Runtime Security –Account (tenant, user) registration –Choosing ID provider(s) during authentication –Authorization and access control –Audit trail CollectionSpace16

Multi-tenancy aspects Storage –Nuxeo repository Domain per tenant, repository per tenant, hybrid –File system Metadata –Configuration, Customization, Extensions, Access control policies, roles and resources Administration –Delegated administration, import/export CollectionSpace17