CaTissue Code Jamboree Enable Community based development caTissue Development Team June 22 nd – 24 th, 2011.

Slides:



Advertisements
Similar presentations
Overview of LexEVS 5.0 LexEVS Architecture November, 2009.
Advertisements

Business Development Suit Presented by Thomas Mathews.
CACORE TOOLS FEATURES. caCORE SDK Features caCORE Workbench Plugin EA/ArgoUML Plug-in development Integrated support of semantic integration in the plugin.
Monthly Webinar Upgrading to caTissue Plus caTissue Training Monthly Webinars Trainer: Srikanth Adiga & Poornima Govindrao |
CaTissue 2.0 Architectural and Semantic Challenges June 10 th, 2011.
YOUR LOGO HERE YOUR LOGO HERE Amy Brink Comparing caTissue Plus to caTissue 1.3.6A Amy Brink March 5 th, 2014.
Web Applications Development Using Coldbox Platform Eddie Johnston.
Server-Side vs. Client-Side Scripting Languages
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
CaTissue customizations at Indiana University and Regenstrief Institute.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
IBM User Technology March 2004 | Dynamic Navigation in DITA © 2004 IBM Corporation Dynamic Navigation in DITA Erik Hennum and Robert Anderson.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
©2011 Quest Software, Inc. All rights reserved. Steve Walch, Senior Product Manager Blog: November, 2011 Partner Training Webcast.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Curation Tool June 11, Curation Tool Overview Architecture Implementation Dependencies Futures 2.
System Design/Implementation and Support for Build 2 PDS Management Council Face-to-Face Mountain View, CA Nov 30 - Dec 1, 2011 Sean Hardman.
A GUIDE TO SHAREPOINT 2007 CUSTOMIZATION OPTIONS Heather Solomon, WSS MVP.
Struts 2.0 an Overview ( )
Value Domain and Pick List Support in LexEVS 5.1 Sridhar Dwarkanath Mayo Clinic CaBIG Architecture/VCD Joint Workspace F2F.
Towards Bboogle 3.0.0: a Technical Walkthrough Patricia Goldweic Sr. Software Engineer AR&T, Northwestern University Brian Nielsen Manager, Faculty Support.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
OpenMDR: Generating Semantically Annotated Grid Services Rakesh Dhaval Shannon Hastings.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
ArcGIS Workflow Manager An Introduction
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
● Problem statement ● Proposed solution ● Proposed product ● Product Features ● Web Service ● Delegation ● Revocation ● Report Generation ● XACML 3.0.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
By Mihir Joshi Nikhil Dixit Limaye Pallavi Bhide Payal Godse.
Benefits of Using AllFusion ERwin and Advantage Gen in the Same Project Lifecycle Steve Smith Jumar Solutions 28 th March 2007.
CaTissue Suite 2.0 Scope Detail TBPT Workspace call May 23, 2011.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
OpenMDR: Alternative Methods for Generating Semantically Annotated Grid Services Rakesh Dhaval Shannon Hastings.
CaGrid 2.0 December What is caGrid 2.0??? Provides a patch for caGrid 1.x to support SHA2 OSGi implementation of WSRF on the new technical stack.
What’s new in Stack 3.2 Michael Youngstrom. Disclaimer This IS a presentation – So sit back and relax Please ask questions.
1 Documentum 6 Reviews from Early Adopters Technology Services Group, Inc. October 10, 2007.
CaTissue Code Jamboree Enable Community based development caTissue Development Team June 22 nd – 24 th, 2011.
Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)
LexEVS Overview Mayo Clinic Rochester, Minnesota June 2009.
Using the Open Metadata Registry (openMDR) to create Data Sharing Interfaces October 14 th, 2010 David Ervin & Rakesh Dhaval, Center for IT Innovations.
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
CaDSR Freestyle Search June 11, caDSR Freestyle Search Overview Architecture Implementation Dependencies Futures 2.
Nadir Saghar, Tony Pan, Ashish Sharma REST for Data Services.
CAS Lightning Talk Jasig-Sakai 2012 Tuesday June 12th 2012 Atlanta, GA Andrew Petro - Unicon, Inc.
Open Terminology Portal (TOP) Frank Hartel, Ph.D. Associate Director, Enterprise Vocabulary Services National Cancer Institute, Center for Biomedical Informatics.
IBM Software Group ® Context-Sensitive Help with the DITA Open Toolkit Jeff Antley IBM October 4, 2007.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
Presented by Scientific Annotation Middleware Software infrastructure to support rich scientific records and the processes that produce them Jens Schwidder.
Presented by Jens Schwidder Tara D. Gibson James D. Myers Computing & Computational Sciences Directorate Oak Ridge National Laboratory Scientific Annotation.
I Copyright © 2007, Oracle. All rights reserved. Module i: Siebel 8.0 Essentials Training Siebel 8.0 Essentials.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
What is NCIA? National Cancer Imaging Archive Searchable repository of in vivo cancer images in DICOM format Publicly available at no cost over the Internet.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
System/SDWG Update Management Council Face-to-Face Flagstaff, AZ August 22-23, 2011 Sean Hardman.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
UCLA Office of Instructional Development Web Site Redesign May 20, 2005.
UpgradinguPortal to What’s new that matters Better use of third party frameworks Faster! Improved caching Drag and Drop New Skin & Theme Accessibility.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
ArcGIS for Server Security: Advanced
Getting Started with Alfresco Development
ARCH-1: Application Architecture made Simple
The JSF Tools Project – WTP (internal) release review
Presentation transcript:

caTissue Code Jamboree Enable Community based development caTissue Development Team June 22 nd – 24 th, 2011

2 Day 1 Agenda – Morning Introduction to caTissue [PRESENTATION – 1 hour] Background Architecture and Domain Model Codebase Break [15 mins] Building, Exploring the Code [HANDS-ON – 1 hour] Break [15 mins] Development Process [PRESENTATION – 15 mins] Extension Walk-Through [DEMO – 30 mins] Break for Lunch [1 hour]

3 Day 1 Agenda – Afternoon Extension & Integration [PRESENTATION – 15 mins] Future Refactoring Options [DISCUSSION – 1 hour] Break [15 mins] Community Experiences [DISCUSSION hours] Break [15 mins] Group Breakouts – Session A [2 hours]

4 Introduction to caTissue: Development Team

5 Introduction to caTissue: Background - History

6 Introduction to caTissue: caTissue 2.0 Timeline

7 caTissue Public Links Design Document Data Model Technical Guide User Manual caTissue Knowledge Center

8 Day 1 Agenda – Morning Introduction to caTissue [PRESENTATION – 1 hour] Background Architecture and Data Model Codebase Break [15 mins] Building, Exploring the Code [HANDS-ON – 1 hour] Break [15 mins] Development Process [PRESENTATION – 15 mins] Extension Walk-Through [DEMO – 30 mins] Break for Lunch [1 hour]

9 Architecture – High Level

10 Architecture – Sharing Data

11 Architecture – More Detail

12 Introduction to caTissue: Application Architecture Presentation Layer  edu.wustl.catissuecore.action  edu.wustl.catissuecore.actionForm  edu.wustl.common.action  edu.wustl.catissuecore.filter  edu.wustl.catissuecore.flex Business Layer  edu.wustl.catissuecore.bizlogic  edu.wustl.catissuecore.factory  edu.wustl.catissuecore.bean Data Access Layer  edu.wustl.catissuecore.hbm  edu.wustl.catissuecore.dao  edu.wustl.catissuecore.domain Exception  edu.wustl.common.exception Utility  edu.wustl.common.util Security  edu.wustl.security Client API  edu.wustl.catissuecore.client  edu.wustl.catissuecore.cacore Extensions  edu.wustl.catissuecore.deidentifier  edu.wustl.catissuecore.namegenerator  edu.wustl.catissuecore.printservicemodule Service Layer  edu.wustl.catissuecore.ctrp  edu.wustl.catissuecore.GSID

13 Domain Model Domain Model:

14 Domain Model User

15 Domain Model Collection Protocol

16 Domain Model Specimen

17 Domain Model Specimen Order

18 Domain Model Participant

19 Domain Model Pathology

20 Domain Model Container

21 Domain Model Specimen Event Parameters

22 Day 1 Agenda – Morning Introduction to caTissue [PRESENTATION – 1 hour] Background Architecture and Domain Model Codebase Break [15 mins] Building, Exploring the Code [HANDS-ON – 1 hour] Break [15 mins] Development Process [PRESENTATION – 15 mins] Extension Walk-Through [DEMO – 30 mins] Break for Lunch [1 hour]

23 Main Codebase Locations Where to get the source code from: Jamboree Branch branches/caTISSUE_SUITE_v20_JAMBOREE_BRANCH Fresh and stable Also get it on DVD Iteration Builds tags/caTissue_v2.0_I7W2_14JUN11_TAG QA-checked and stable Bleeding Edge branches/caTISSUE_SUITE_v20_BDA_BRANCH Latest and greatest Not as stable

24 SVN Locations for other caTissue- related Projects Under:

25 SVN Locations for other caTissue- related Projects (page 2) Under:

26 Technology Stack caTissue Web Application Software ElementNameVersion Operating System WindowsXP Professional 2002 SP2 LinuxRedhat 9 Redhat ES/AS 2.1 or higher Application ServerJBoss5.1.0 GA JavaJDK1.6 Database Oracle MySQL5.1.x JavaScript Library Ext JS2.1 Adobe Flash Flex SDK2.0.1 MVC Framework Struts1.1 ORM Hibernate3.1.3

27 Technology Stack Software ElementNameVersion Operating System WindowsXP Professional 2002 SP2 LinuxRedhat 9 Redhat ES/AS 2.1 or higher Web ServerJBoss5.1.0 GA JavaJDK1.6 Database Oracle MySQL5.1.x caGrid 1.4 Globus Globus Toolkit4.0.3 caTissue Grid Service

28 Codebase - Layout Where to find stuff: software/build Starting point for build and deployment Configuration files and build scripts Have to modify versioned files and keep them uncommitted: install.properties, upgrade.properties Not very flexible; need to change that software/caTissue/db Database scripts (Oracle & MySQL) Installation Upgrade (1.2  2.0) software/caTissue/src/conf A lot of configuration files Normally, no need to edit these Configuration is done via install.properties Except grid configuration

29 Codebase - Layout software/caTissue/src/java/WEB-INF/src Main codebase: Java, Hibernate, Struts, I18N files, etc Does not really belong to under WEB-INF software/caTissue/src/java/WEB-INF Web app plumbing: web.xml, Struts config, custom tags, etc. “src/java” is not an obvious choice for WEB-INF either software/caTissue/src/web Static content (CSS, JavaScript, etc) Dynamic content (JSP) Under WEB-INF would be a better location software/caTissue/test Struts Test Cases caCORE API Test Cases DB Unit Test Cases docs/UMLModel UML model used during caCORE code gen

30 Codebase – BDA’ification Changes due to BDA in 2.0 : New folder structure New ant targets Benefits: Single click build and deploy process Ivy-fication Consistent folder structure across the projects Automatic download & installation of required infrastructure – e.g JBoss Ant macros for various checks like Java, database Code coverage, Standards, Duplication, Complexity, Dependencies

31 Codebase – Building & Dependency Mgmt caTissue is using: Apache Ant Automated (almost) build process Is complex and takes time Apache Ivy Dependencies management Keeps jar files out of version control Not yet as efficient as we would like it to be “WEB-INF” dependency with hundreds of jars Eclipse Coding and debugging JRebel plug-in to cut re-deployment time

32 Codebase – Code cleanup In v1.2: Installation zip file cleanup Cyclic dependency among JARs In v2.0: Removed non-domain model attributes from POJOs Cleanup of duplicate and unused JARs Code auto generation based on UML model using caCORE DE API client API (junk files, better examples files, integrated API)

33 Day 1 Agenda – Morning Introduction to caTissue [PRESENTATION – 1 hour] Background Architecture and Data Model Codebase Break [15 mins] Building, Exploring the Code [HANDS-ON – 1 hour] Break [15 mins] Code Extension Points [PRESENTATION – 15 mins] Extension Walk-Through [DEMO – 30 mins] Break for Lunch [1 hour]

34 Building, Exploring the Code Goal #1: install all pre-requisites SVN Client, Java, Ant, Database, Eclipse (optional) Goal #2: build caTissue Ant Goal #3: explore codebase Notepad (harder) or Eclipse (easier) Goal #4: don’t strangle your computer Deep breaths, we are here to help Build Instructions:

35 Day 1 Agenda – Morning Introduction to caTissue [PRESENTATION – 1 hour] Background Architecture and Data Model Codebase Break [15 mins] Building, Exploring the Code [HANDS-ON – 1 hour] Break [15 mins] Development Process [PRESENTATION – 15 mins] Extension Walk-Through [DEMO – 30 mins] Break for Lunch [1 hour]

36 Development Process One day in the life of caTissue developer Routine coding

37 Development Process Another day in the life of caTissue developer Add a new field or a new class

Extension Walk-Through: Demonstration

39 Day 1 Agenda – Morning Introduction to caTissue [PRESENTATION – 1 hour] Background Architecture and Data Model Codebase Break [15 mins] Building, Exploring the Code [HANDS-ON – 1 hour] Break [15 mins] Development Process [PRESENTATION – 15 mins] Extension Walk-Through [DEMO – 30 mins] Break for Lunch [1 hour]

40 Day 1 Agenda – Afternoon Extension & Integration [PRESENTATION – 15 mins] Future Refactoring Options [DISCUSSION – 1 hour] Break [15 mins] Community Experiences [DISCUSSION hours] Break [15 mins] Group Breakouts – Session A [2 hours]

41 SOA-based Integration Points Extensions

42 Stable Code Extension Points Label generator for specimen, SCG, and containers Identity Provider (IdP) integration De-Identifier for SPR Participant matching algorithm caCORE-based Arbitrary integration with local clinical databases using read/write APIs V2.0 includes integrated API across static and DE model (for the audience) Any others desired?

43 SOA Integration Points Patient management service (C3PR) Endpoint and credentials are configured in property files prior to build Extension point is coded against a well-defined service interface NCI Enterprise Service (NES) Patient registration service (C3PR) Person service (COPPA) Organization service (COPPA) Protocol Abstraction service (COPPA) GSID service

44 SOA-based Integration: CTRP What we have now Where we want to be

45 SOA-based Integration: C3PR What we have now Where we want to be

46 SOA-based Integration: GSID

47 Site specific configuration Storage container hierarchy Dynamic Extensions Bulk operations Date format

48 caTissue In Action: WashU Customizations Assign eMPI for every participant Barcode printer (Brady) integration Protocol specific specimen label generators Integration with clinical data repository (CIDER) to store specimen XML for every specimen (in progress) Integration with ClinPortal (CDMS) including UI level Multiple IdPs: Integration with WU LDAP Central CSM IdP across multiple clinical applications

49 caTissue and caCORE One of the early and extensive adopter of caCORE and CSM SDKs Provided many inputs to caCORE/CSM releases Upgraded to latest version of caCORE (v4.2), CSM(v4.2) and caGrid (v1.4) in v2.0 APIs in Action: Legacy data migration Integration with other databases Bulk Operations internally uses the API framework

50 caTissue API vs Vanilla caCORE API

51 caTissue: Frameworks/modules used NCI CSM which internally uses JAAS CAS for single signon (SSO) Adobe Flex CP Based view (some point should replace with simpler JavaScript based implementation) Diagrammatic view in Advanced Query Lucene for keyword based search

52 Additional integration: NCI infrastructure challenges Not able to auto generate code from model Could not use CSM instance level security in v2.0 Enhancements in semantic infrastructure needed for sharing Dynamic Extensions Temporal query via CQL Distributed authorization entities for instance-level security

53 Day 1 Agenda – Afternoon Extension & Integration [PRESENTATION – 15 mins] Future Refactoring Options [DISCUSSION – 1 hour] Break [15 mins] Community Experiences [DISCUSSION hours] Break [15 mins] Group Breakouts – Session A [2 hours]

54 Future Scope: Suggestions Configurable attribute validations Rules Engine Scripting language Custom solution I18N Make sure all text is in resources file Not the case as of now Vary date and number format by locale Configurable display labels Move ApplicationResources.properties to the database (more flexibility) Or edit the file prior to build (less flexibility) Upgrade Struts Short-term: Struts Long-term: Struts 2 Major effort Consistent data validation across UI and API Move validation code out of Struts Validator Forms and into biz layer

55 Day 1 Agenda – Afternoon Extension & Integration [PRESENTATION – 15 mins] Future Refactoring Options [DISCUSSION – 1 hour] Break [15 mins] Community Experiences [DISCUSSION hours] Break [15 mins] Group Breakouts – Session A [2 hours]

56 Day 1 Agenda – Afternoon More Integration Options [PRESENTATION – 15 mins] Future Refactoring Options [DISCUSSION – 1 hour] Break [15 mins] Community Experiences [DISCUSSION hours] Break [15 mins] Group Breakouts – Session A [2 hours]

57 Day 2 Agenda Session A Report-Out [1 hour, 45 mins] Findings, Strategies, Plan for Today, Input from Wider Group Group Breakouts – Session B [2 hours, 15 mins] Break for Lunch [1 hour] Session B Report-Out [1 hour] Working Session – Refactoring [1.5 hours] Group Breakout – Code Modifications [1.5 hours] Summary/Q&A [15 mins]

58 Day 3 Agenda Report-Out [1 hour] Findings, Strategies, Plan for Today, Input from Wider Group CBIIT Open Source Initiatives Update [45 mins] Break [15 mins] Group Breakouts [2 hours] Break for Lunch [1 hour] Open Discussion [1.5 hours] Code Jamboree Findings [30 mins] Wrap-up [15 mins]