Guiding Principles for Technical Architecture



Similar documents
Kuali Student Service System. Program Charter. Prepared for: Kuali Student Service System Board

Oracle SOA Reference Architecture

The Oracle Fusion Development Platform

SOA REFERENCE ARCHITECTURE

Leveraging Service Oriented Architecture (SOA) to integrate Oracle Applications with SalesForce.com

Introduction to Service-Oriented Architecture for Business Analysts

What You Need to Know About Transitioning to SOA

E-Business Suite Oracle SOA Suite Integration Options

An Oracle White Paper November Oracle Primavera P6 EPPM Integrations with Web Services and Events

<Insert Picture Here> Building a Complex Web Application Using ADF and Siebel

Architectural Requirements for an SOA Based on Web Services. Jim Bole VP, Engineering Infravio, Inc. April 23, 2003

SOA REFERENCE ARCHITECTURE: WEB TIER

How To Understand A Services-Oriented Architecture

What is the NXTware Evolution Server Peter Marquez, Product Marketing ecube Systems

Service Oriented Architecture

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

SAAS. Best practices for SAAS implementation using an Open Source Portal (JBoss)

Service Virtualization: Managing Change in a Service-Oriented Architecture

Getting started with API testing

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

An Open Policy Framework for Cross-vendor Integrated Governance

<Insert Picture Here> Integrating Oracle Forms and a Service Oriented Architecture

Simplifying Processes Interoperability with a Service Oriented Architecture

Prerequisites for Successful SOA Adoption

Service-oriented architecture in e-commerce applications

Introduction to Service Oriented Architectures (SOA)

AquaLogic Service Bus

Accenture Public Service Platform Taking SOA from the Whiteboard to the Data Center and Beyond

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

The Service Revolution software engineering without programming languages

Technical Track Session Service-Oriented Architecture

Oracle Application Development Framework Overview

Creating new university management software by methodologies of Service Oriented Architecture (SOA)

The case for service oriented architecture in realising trusted, interoperable, pan-european egovernment services.

Oracle Application Server 10g Web Services Frequently Asked Questions Oct, 2006

SOA Best Practices (from monolithic to service-oriented)

INTEGRATING ESB / BPM / SOA / AJAX TECHNOLOGIES

A Quick Introduction to SOA

1 What Are Web Services?

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15

White Paper. TIA Architecture Overview

Oracle SOA Suite: The Evaluation from 10g to 11g

ActiveVOS Server Architecture. March 2009

Guiding Principles for Modeling and Designing Reusable Services

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

ITU-T Kaleidoscope Conference Innovations in NGN. Managing NGN using the SOA Philosophy. Y. Fun Hu University of Bradford

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

Overview Document Framework Version 1.0 December 12, 2005

How To Build A Financial Messaging And Enterprise Service Bus (Esb)

Extend the value of your core business systems.

Extending SOA Infrastructure for Semantic Interoperability

An Oracle White Paper June Integration Technologies for Primavera Solutions

Getting Started with Service- Oriented Architecture (SOA) Terminology

Independent Insight for Service Oriented Practice. An SOA Roadmap. John C. Butler Chief Architect. A CBDI Partner Company.

Business Process Management in the Finance Sector

Choose an IBM WebSphere Application Server configuration to suit your business needs

API Management Introduction and Principles

Service Oriented Architecture Case: IBM SOA Reference Architecture

Enterprise Service Bus Defined. Wikipedia says (07/19/06)

Federal Enterprise Architecture and Service-Oriented Architecture

WELCOME TO Open Source Enterprise Architecture

1 What Are Web Services?

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Service-Oriented Computing and Service-Oriented Architecture

Reusing Existing * Java EE Applications from Oracle SOA Suite

A standards-based approach to application integration

SOA Success is Not a Matter of Luck

Magic Quadrant for Intelligent Business Process Management Suites

Service-Orientation and Next Generation SOA

Service Governance and Virtualization For SOA

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Introduction to CASA: An Open Source Composite Application Editor

JOB DESCRIPTION APPLICATION LEAD

Software Requirement Specification Web Services Security

SOA and Web Services. Larry Kramer Principal Applied Technologist June 9, A PeopleTools and Fusion perspective

Pro<DOC/> e-commerce Technology An Introduction

Methods and tools for data and software integration Enterprise Service Bus

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

Lesson 18 Web Services and. Service Oriented Architectures

Table of Contents. 1 Executive Summary SOA Overview Technology Processes and Governance... 8

What s New in Sonic V7.5 Rick Kuzyk

Air Force SOA Enterprise Service Bus Study Using Business Process Management Workflow Orchestration for C4I Systems Integration

JBoss enterprise soa platform

Bridging the Gap between On-Premise BizTalk ESB and Windows Azure platform AppFabric

Salesforce integration with Enterprise Open Source. Mischa de Vries László van den Hoek SFDC Consultant OS Consultant

WHITE PAPER. Written by: Michael Azoff. Published Mar, 2015, Ovum

Web Services and Service Oriented Architectures. Thomas Soddemann, RZG

RS MDM. Integration Guide. Riversand

Policy Driven Practices for SOA

Service Oriented Architectures

Service Oriented Architecture: An Overview Discussion. Jeff Simpson Principle SOA Architect

Service-Oriented Architecture Foundation

Transcription:

This document is a statement of the principles that will guide the technical development of the Kuali Student system. It will serve as a reference throughout the full lifecycle of the project. While these principles are open to amendments as the project progresses and as lessons are learned, every effort should be made to preserve these ten guiding principles. As a means of preserving these guiding principles, the Change Management Process will be used to amend this document and to make exceptions to the principles while building Kuali Student. The following are the ten guiding principles for Kuali Student. Service Oriented Architecture Principle 1: SOA Methodology The first characteristic of Kuali Student is that it is based on Service Oriented Architecture (SOA). Although many Java Enterprise applications are service based in that objects are accessed via service interfaces, the SOA approach is different in several respects: There is a greater emphasis on the up-front design of entities and service contracts. The artifacts of the design phase are entity models and service definitions. Services should be autonomous; they are not controlled or constrained by another service and therefore may run remotely. From a development perspective, there will be a strong presumption in favor of building services that can be deployed remotely. There will however be cases where this is impracticable for performance, security, or other reasons. Services should be loosely coupled; they are modeled and exposed through an interface that is separate from its implementation. Through loose coupling, services can be implemented in any environment as long at the implementation fulfills the service contract. There is a high degree of emphasis placed on the identification of re-useable services. An example of the benefit of SOA is the design of the authentication system for Kuali Student. By designing services (via service contracts) that are autonomous and loosely coupled it s possible to plug in any authentication system (e.g., CAS, home-grown, etc.) that implements the system s service contracts. Principle 2: Web Services The preferred implementation of the SOA is web service technology. Web services have the advantages in their simplicity, their universality, and the fact that they are platform neutral. Web services means SOAP (Simple Object Access Protocol) and WSDL (Web Service Definition Language). Apache Axis is a good example of a product that DRAFT For Discussion ONLY 08/02/07 1

implements these technologies. XML schema is the primary vehicle for expressing entity models and service contracts. In short, "XML is the platform." Principle 3: Standards Based Kuali Student will follow open standards wherever feasible. The standards observed will be in the following areas (and others where applicable): 1. The W3C Web services framework (SOAP and WSDL) 2. Kuali Student will follow WS-* standards where they apply (e.g., WS-Security, WS- Transactions, WS-Addressing, etc.). 3. Industry standards such as those supported by PESC-AACRAO 4. Java Community standards such as JSR 168 (Portlet), and JSR 94 (Rules Engine) 5. Internationalization standards Standards compliance is a key issue in product selection. For example, it is important that the Kuali Student Web-services engine implement the latest SOAP and WSDL standards. A product s adherence to the latest standards has the additional benefit of freeing the Kuali Student technical team from the constraint of being continuously up-to-date on every change in a standard s definition. It s understood that standards will evolve over the course of the project. While it s generally a good idea to maintain Kuali Student s adherence to the latest standards, the technical team should be prudent in its attempts to keep pace with the latest standards as doing so may have a negative impact on delivery of the product. Principle 4: Separate Governance Process for Service Contracts Service contracts are business assets of an SOA-based system, are the public definition of the system, and must be the most stable part of the system. They are governed separately and differently from that of typical development artifacts in that the governing body has representation from each service domain, the involved business units, and technical subject matter experts. This body can be decentralized where each unit is responsible for their services and those they want to make available to others, or it can be a centralized body that reviews all new, modified, or retired service contracts, or the organization can be somewhere in between. The governance body s organization will be specified in the methodology section of the Kuali Student Charter. The management of service contracts can be extended to external contracts as there may be cases where Kuali Student consumes stable 3 rd -party services (such as the validation of addresses by a postal service). Service contracts created by an institution (i.e., for the purpose of customization or for the consumption of external services, for example) will be maintained by the institution. Service contracts contained in the reference distribution will be maintained by Kuali Student. DRAFT For Discussion ONLY 08/02/07 2

Component Abstraction Principle 5: Abstraction of Business Processes and Business Rules Business rules and business process logic will be abstracted from the code base. Rules engines are the preferred vehicles for abstracting business rules Workflow and BPEL engines are the preferred vehicles for abstracting business process logic. The use of rules engines takes the traditional separation of business logic and presentation in an n-tier architecture one step further by externalizing business logic. Changes to business logic can be defined to the system without any programming changes. Routing logic for the workflow engine is also expressed through the rules engine. An important part of the project will involve developing interfaces for the rules engine(s). Rules engine technology also introduces the possibility of artificial intelligence in the system since one of the outputs of a rules engine can be a new set of optimized rules. The Kuali Student reference distributions will include standard templates for common business practices that may be extended by implementers to meet the particular needs of their institutions. As an example, the template calculategpa could be extended to meet the specific rules of an institution in the calculation of a student s GPA. In cases where the business process and business rules vehicles are insufficient there will be clear guidelines on how to abstract business logic in the code (as dictated by the Change Management Process). Principle 6: Abstraction of Presentation Layer and Use of an Open Source Portal Abstraction of the presentation layer allows User Interface (UI) components to be separate from the orchestration layer and the business service layer. To illustrate, a benefit of the abstraction is the ability to deliver the UI to a wide array of devices (such as PCs, cell phones, PDAs) without modification of the presentation layer s input stream to accommodate the differences in each. To help facilitate this approach, Kuali Student will be delivered through an existing portal product. Using a portal provides the opportunity to abstract the presentation layer through standards (such as JSR 168 and WSRP where there is a need for remote portlets). Portal functionality such as provisioning, customization, and personalization will remain within the domain of the portal rather than within the scope of the Kuali Student project. Principle 7: Abstraction of the Data Layer Data abstraction is implemented in three ways: 1. Much of Kuali Student s data model will be derived from simple abstractions; that is, abstractions representing basic concepts and objects such as time, people, learning DRAFT For Discussion ONLY 08/02/07 3

units, and learning results. Implementing these abstractions as identifiable domain objects (real-world objects like courses, sections, students, and instructors) is carried out through a series of configuration templates. 2. Data access will be abstracted in the data layer. The purpose is to provide database independence, allowing any ANSI SQL compliant database to be used while still allowing database-specific calls to be made within the data layer for things like performance enhancements. 3. Data access should be abstracted through an ORM framework and as a rule it will be services that provide data. Consequently, applications that need data do not need to understand the details of database navigation. Leveraging Open Source Principle 8: System Will Be Built Entirely On An Open Source Software Stack Licensing and IP Management Kuali Student will be built entirely on an open source software stack compatible with the outbound Educational Community License (ECL). Further, Kuali Student will adhere to the Kuali Foundation s IP management policies for inbound licensing and assessment of 3 rd -party licenses. Open Source Reference Distribution Reference distributions of Kuali Student are entirely open source. The reference distributions of Kuali student are entirely open source. That, however, does not preclude implementers from swapping in commercial products for part of the stack. For example, an institution that has a deep investment in Oracle may wish to continue using Oracle for Kuali Student. Principle 9: Infrastructure Will Be Composed Of Existing Open Source Products Use of Open Source Infrastructure Components It is not within the scope of Kuali Student to build infrastructure components, although the technical team may need to develop web service wrappers for existing products. Kuali Student will use existing open source products for BPEL engines, an Enterprise Service Bus, Workflow and Rules Engine Technology and UI frameworks. By using a formal open source software assessment methodology, such as OpenBRR, OSSM, or QSOS, the technical team will evaluate and select software from well-established open source organizations. Involvement in Open Source Projects Because of the large scope and complex requirements of Kuali Student, and the varying stages of maturity of the various open source solutions, the technical team might become involved with the development of some of the necessary open source components. Involvement with other projects will be evaluated on a case by case basis. To help insure that Kuali Student s involvement with other open source projects doesn t become an unnecessary drain on resources, involvement should be limited to very a specific purpose such as a bug fix or feature enhancement. DRAFT For Discussion ONLY 08/02/07 4

For those cases in which Kuali Student necessarily becomes involved in open source projects that pose the risk of becoming costly and ongoing responsibilities, attempts should be made to find external organizations to provide stewardship so that Kuali Student may devolve that responsibility. Evaluation of Open Source Infrastructure Components Infrastructure developed within the Kuali foundation will be evaluated using the same criteria as any other product. Adherence to service orientation is the most important principle. However, within these constraints, Kuali Student will actively seek to leverage Kuali code, concepts, and expertise. Kuali infrastructure products will change and mature over time and therefore this is another area in which there may be a reevaluation of original choices. Development Principle 10: Java as the Language and Platform of Choice Code that is written as part of the core Kuali Student product should be written in Java and Java will be the platform of choice for Kuali Student. However, partners and other third parties can develop add-ons written in any language and that use a non-java platform as long as they can work with the Kuali Student web service framework. Above all, this means they must work with the Kuali Student service contracts. DRAFT For Discussion ONLY 08/02/07 5