Open XML Court Interface (OXCI) Architecture Proposal



Similar documents
Developers Integration Lab (DIL) System Architecture, Version 1.0

Virtual Credit Card Processing System

QMBTIS Case Management System with EDMS

STORM. Simulation TOol for Real-time Multiprocessor scheduling. Designer Guide V3.3.1 September 2009

Publishing to a Remote Server

Web Services Implementation: The Beta Phase of EPA Network Nodes

irods and Metadata survey Version 0.1 Date March Abhijeet Kodgire 25th

CaseLoad Software. mycaseload Feature Overview VERSION 6.3 MAY 1, 2015

Analysis of the Specifics for a Business Rules Engine Based Projects

Java Application Developer Certificate Program Competencies

Modeling Web Applications Using Java And XML Related Technologies

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

The Software Prototype of Civil Court Case Management in Thailand

How to Write AllSeen Alliance Self- Certification Test Cases September 25, 2014

estatistik.core: COLLECTING RAW DATA FROM ERP SYSTEMS

Intalio BPM. The first and only complete Open Source Business Process Management System

INTEGRATION MANAGER. Our Commitment To Your Success

Areca's file-system access layer

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Content management system (CMS) guide for editors

Design of an XML-based Document Flow Management System for Construction Projects Using Web Services

Ontological Identification of Patterns for Choreographing Business Workflow

GenericServ, a Generic Server for Web Application Development

A Scalability Model for Managing Distributed-organized Internet Services

Introduction to Web Services

SeaClouds Project. Cloud Application Programming Interface. Seamless adaptive multi- cloud management of service- based applications

Methodology of performance evaluation of integrated service systems with timeout control scheme

N CYCLES software solutions. XML White Paper. Where XML Fits in Enterprise Applications. May 2001

WEB-BASED SIMULATION OF MANUFACTURING SYSTEMS

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

GEOFLUENT TRANSLATION MANAGEMENT SYSTEM

Configuration & Build Management

JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Nevada Supreme Court Training Sessions

Electronic Unreviewed Safety Question (eusq) System Lessons Learned

Software Requirements Specification of A University Class Scheduler

Qualys API Limits. July 10, Overview. API Control Settings. Implementation

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Software Configuration Management. Addendum zu Kapitel 13

Open Source VoiceXML Interpreter over Asterisk for Use in IVR Applications

vcommander will use SSL and session-based authentication to secure REST web services.

The Integration Between EAI and SOA - Part I

PARLAY API: BUSINESS BENEFITS AND TECHNICAL OVERVIEW

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Visual Basic. murach's TRAINING & REFERENCE

DreamFactory Security Whitepaper Customer Information about Privacy and Security

Settlers of Catan Phase 1

Object Oriented Software Models

TATJA: A Test Automation Tool for Java Applets

Xerox EDI Direct Claims Gateway Communication Document for ASC X12N 837 Health Care Claim Transaction Submission

A standards-based approach to application integration

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Exploring ADSS Server Signing Services

EUR-Lex 2012 Data Extraction using Web Services

VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR

PSW Guide. Version 4.7 April 2013

Developing XML Solutions with JavaServer Pages Technology

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

ICT. Universityy. in any

Applying Object-Oriented Principles to the Analysis and Design of Learning Objects

SOFTWARE ENGINEERING PROGRAM

Florida Courts E-Filing Portal. New Clerk Academy August 2015

Programming in C# with Microsoft Visual Studio 2010

Server-Side Scripting and Web Development. By Susan L. Miertschin

Sample Usage of TAXII

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

B2B Glossary of Terms

GV STRATUS Digital Publishing Workflows. Johannes Kuhfuss, Product Owner Karel Rasovsky, Marketing Operations December 2013

B2BE Transaction Delivery Network

Session Service Architecture

Satisfying business needs while maintaining the

Improving Agility at PHMSA through Service-Oriented Architecture (SOA)

Open EMS Suite. O&M Agent. Functional Overview Version 1.2. Nokia Siemens Networks 1 (18)

Title: efiletexas.gov Statewide e-filing System. Category: Cross-Boundary Collaboration and Partnerships

Java the UML Way: Integrating Object-Oriented Design and Programming

TMax Auto Support v View the ThunderMax Auto Support Video on YouTube.

Financial Management System

A Proposal for a Description Logic Interface

Enterprise Job Scheduling: How Your Organization Can Benefit from Automation

U.S. Department of Health and Human Services (HHS) The Office of the National Coordinator for Health Information Technology (ONC)

Connect Here. Go Anywhere.

Proposal for Comprehensive SINERGY Surveillance System. Group 12 John Kurlak Robert Pero Aleksi White

An Approach to Software Architecture Description Using UML

Solution Brief ealliance EDI Solutions

Data Modeling Basics

Fundamentals of Java Programming

ecms Document Management Request for Proposal: Questions & Responses

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

BPMS BUYER S TOOL KIT. Sample Request for Proposal for a Business Process Management Suite. Part 1 of the complete BPMS Buyer s Tool Kit

A Monitored Student Testing Application Using Cloud Computing

I-ADM Request for Information for Document Management System Software


Roles in Building Web Applications using Java

Flattening Enterprise Knowledge

Job Scheduler Oracle FLEXCUBE Universal Banking Release [April] [2014] Oracle Part Number E

Transcription:

Document version: 1.0 Author: Richard Himes Abstract Open XML Court Interface (OXCI) Architecture Proposal This document is a draft proposal for an approach to the design of the Open XML Court Interface (OXCI). It is submitted as a seed for comments so that the design group can discuss and agree on a general methodology. Table of Contents 1.0 Introduction 2.0 Architectural Requirements 3.0 OXCI Requirements 4.0 Objects and Interfaces 5.0 Top Level Objects and Interfaces 6.0 XML Objects and Interfaces 7.0 Conclusion 8.0 Glossary 1. Introduction The design of OXCI will be a team effort involving participants with a wide range of experience and technical ability. It is desirable to tap into this experience at every phase of development. The intent of this document is not to cast ideas in stone, but rather to serve as a point of discussion. The goal is to use the best design practices. 2. Architectural Requirements This system will be used by courts and vendors with vastly different architectures, so the design needs to be flexible. It is desirable for the design to be languageindependent and object-oriented. The architecture should be defined in terms of a generic API (application programming interface) rather than specific code. The design should be clear, not mysterious. To some extent, these requirements (abstraction and clarity) conflict. Thus, the design needs to be presented from several different viewpoints. 3. OXCI Requirements

OXCI will serve as the Electronic Filing Manager (EFM) module in diagram 3.1. EFP is the electronic filing provider. It represents the client (attorney) side of electronic filing. The EFP wraps the filing(s) in a Legal XML envelope and transmits it to the EFM. There can be many EFP systems communicating with a particular EFM. The method of transmission is unspecified, but could be via e-mail, HTTP, FTP, or other means. An EFP must submit filings using the Legal XML Court Filing data format standard. The CMS is the case management system. It represents the court side of electronic filing. There will probably be only one CMS per EFM, but theoretically, the EFM could distribute filings to multiple CMS systems in a state or region. The CMS is responsible for accepting or rejecting a filing. Other standard CMS functions (docketing, reporting, workflow, etc.) are outside the scope of this specification. The requirements of OXCI (EFM) include: Listen (or poll) for and accept a filing from an EFP Authorize the EFP vendor and connection Perform basic policy validity checking Translate the filing for the CMS Notify the CMS of the filing Accept the confirmation or response from the CMS Translate the CMS confirmation for the EFP Forward the confirmation to the EFP Basic policy validity checking will require project coordination with a separate design effort know as Court Policy Management. Remaining policy will be enforced by the CMS or human intervention. Sample basic policies are Accept only one filing per message, Do not accept external document references, and Must be on list of accepted document types for this court. The CMS or clerk staff may perform further checks such as The filing attorney is not a bar member, The filed document doesn t conform to court local rules, or The fee payment has not been authorized.

Translating a filing for CMS may involve reformatting the XML and writing it to a DMS (document management system). This will vary from court to court. Figure 3.2 includes the CPM (court policy management) and the DMS system objects. 4. Objects and Interfaces Objects will be defined based on UML (Unified Modeling Language) constructs and the OMG IDL (Object Management Group Interface Definition Language.) IDL will occasionally be augmented with sample Java implementations for clarification. 5. Top Level Objects and Interfaces From the diagram in figure 3.2 and the high level requirements, we can construct figure 5.1, the top level class diagram:

Note: A generic response is indicated. As currently defined in the Legal XML Court Filing specification, the response is a confirmation XML structure which indicates that the filing was received (filed), accepted (docketed), partial (portions of the filing(s) were rejected), deferred (waiting human review), and rejected (with reason text). Note: CMS and DMS are shown as Interfaces because these objects will not be the actual court CMS and DMS. They will format information suitable for processing by the local CMS and DMS and will be court-specific, but will process standardized messages from the OXCI implementation. The word interface here has a different meaning than the design specification application programming interfaces (APIs) of OXCI. The context of the former is an interface by a particular OXCI implementation to another system. The context of the later is a language independent API for OXCI methods. Figure 5.2 shows an interaction diagram for a filing. Forward time is directed downward in the diagram. The asterisks before messages (e.g. * Store Filing) indicate repetition. Note that there may be more than one filing in a CourtFiling message, so these messages are repeated for each filing. The interface Oxci shown below contains a submitcourtfiling member function (also known as a message or a method.) It is passed a CourtFiling object (see section 6.) It returns a Confirmation object (not detailed in this document.) The in means that courtfiling is an input parameter, that is, it is read only. interface Oxci { Confirmation submitcourtfiling ( in CourtFiling courtfiling);

The other top level interfaces will be defined in a similar fashion. Note that a program invoking this object doesn t need to know how this function is implemented (coded) internally, the programming language that is being used (IDL can be compiled into numerous languages), or even the location of the object (it could reside anywhere on the Internet.) The only visible portion for systems using this object is that it contains a function called submitcourtfiling that accepts a CourtFiling object and returns a Confirmation object. Thus, we only know how to invoke this function, and what we can expect in return. The CourtFiling and Confirmation objects, of course, will represent the corresponding XML documents defined in the Electronic Court Filing standard. In actuality, what is received at the court server is a message in LegalEnvelope format, which may contain a CourtFiling element. Thus, there is another level of processing that has been omitted in this discussion for sake of simplicity. 6.0 XML Objects and Interfaces All of these system objects will need to access portions of the CourtFiling XML elements. To facilitate this access, each element in the XML document should be defined as an object. All XML elements will be derived from an OxciElement, which implements the DOM interface Element (see http://www.w3.org/tr/rec-dom- Level-1/level-one-core.html ) There will be a similar definition for OxciDocument, which isn t discussed here. interface OxciElement : Element { void setelement (in Element element); Element getelement (); Element getfirstchildelement ( in wstring tagname); Element getnextsiblingelement ( in wstring tagname); The member functions are: setelement Set this object to represent a specific instance of an element getelement Retrieve the element represented by this object getfirstchildelement Get the first child element having this tag name getnextsiblingelement Get the next sibling element having this name These are just sample member functions, and more will be defined. The CourtFiling element is defined as: interface CourtFiling : OxciElement { ElementEnumerator getfilingenumerator();

The CourtFiling interface implements (is a subclass of) the OxciElement interface, so it inherits all of OxciElement functions. Other elements of the Legal XML Court Filing Standard will be defined in a similar manner. The function getfilingenumerator returns an object of type ElementEnumerator, which allows the multiple Filing elements contained within CourtFiling to easily be obtained one at a time: interface ElementEnumerator() { boolean hasmoreelements(); OxciElement nextelement(); Below is sample Java code using the concepts that have been discussed. It is assumed that if there is an error, a function will throw an exception (this facility is beyond the scope of this discussion.) public class Oxci_ implements Oxci { public Confirmation submitcourtfiling(courtfiling courtfiling) { //* Setup code omitted confirmation = cpm.checkpolicy (courtfiling, confirmation); filingenumerator = courtfiling.getfilingenumerator(); while (filingenumerator.hasmoreelements()){ filing = (Filing)filingEnumerator.nextElement(); dms.storefiling(filing); confirmation = cms.notify(filing, confirmation); return confirmation; Note that confirmation is passed to checkpolicy and notify as an input object. This is because Java doesn t use output parameters for integrity control. Thus, all parameters will be defined as in in IDL. The confirmation object is constructed during different steps in the process. For example, confirmation for a single filing will be set as each filing is processed (the Confirmation object confirms multiple filings.)

7.0 Conclusion This document presents the basic design concepts proposed for OXCI architecture. The sample architecture was simplified to enhance communication of the ideas, and the final design will differ from these examples. An attempt was made to use tools that represent best of practice to define the architecture. However, this is a moving target, and suggestions are welcome. 8.0 Glossary CMS Case Management System CPM Court Policy Management DMS Document Management System EFM Electronic Filing Manager EFP Electronic Filing Provider IDL Interface Definition Language OMG Object Management Group OXCI Open XML Court Interface (serves as EFM) UML - Unified Modeling Language XML Extensible Markup Language Please send comments to Richard Himes <rhimes@nmia.com>