The Freedom to Achieve - PowerPoint PPT Presentation

1 / 46
About This Presentation
Title:

The Freedom to Achieve

Description:

Leverages Apache Avalon. Avalon provides Separation of Concerns (SOC): Do one thing at a time, don't blur ... avalon.component * _at_avalon.service type=org.keel. ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 47
Provided by: platinums
Category:

less

Transcript and Presenter's Notes

Title: The Freedom to Achieve


1
The Freedom to Achieve
Independent, Open Solutions for Business and
Government www.platinumsolutions.com
2
Keel The Next Generation Meta-Framework for Open
Source Development
SD Best Practices 2004 Conference
Expo September 22, 2004 345pm -
515pm Presented by Adam Rossi President,
PlatinumSolutions adam.rossi_at_platinumsolutions.com
3
Why Me?
  • I am an open source Java developer, one of the
    primary developers of the Keel Open Source
    meta-framework, contributor to many other OS
    projects
  • Developer of inter-agency web applications on
    classified networks high complexity, difficult
    deployment environments
  • I have seen good projects, I have seen bad
    projects, and I have witnessed the incredible
    impact of open frameworks

4
About PlatinumSolutions
  • Software development firm specializing in secure
    application development, inter-agency
    collaboration, and information management
  • Main clients are law enforcement and intelligence
    agencies
  • Hostage negotiation support, bombing incident
    analysis, cryptanalysis, computer forensics,
    what-have-you

5
PowerPoint
  • Power Corrupts.
  • PowerPoint Corrupts Absolutely.
  • Luckily I am using OpenOffice.

from PowerPoint is Evil
http//www.wired.com/wired/archive/11.09/ppt2.html
6
The Bottom Line
  • Software development, especially web development,
    is growing more (not less) complex
  • Java 2 Enterprise (J2EE) is the most mature
    development environment, but raw API's do not
    provide structure
  • There are a multitude of excellent, high-quality
    open source components and toolkits, but they are
    difficult to string together into a real
    application and to deploy
  • In order to harness the power of the J2EE
    platform and the functionality of open source
    software components, while maintaining high
    project quality and discipline frameworks are a
    NECESSITY
  • The Keel Meta-Framework provides enormous
    benefits under complex development and deployment
    scenarios

7
Keel Review in March 2004 Issue Software
Development Magazine
think of all the plumbing code you wont have
to write! Especially when it comes to things
like replicating your application over multiple
servers (yes, theyve thought of that,
too).-Software Development Magazine, March 2004
friends, this project is going
places!-Software Development Magazine, March
2004
8
A very quick case study LANG
9
Case Study LANG
  • LANG is an application that facilitates the
    sharing of language specialists between agencies
    in law enforcement and intelligence
  • Supported by a consortium of government agencies
    interested in sharing scarce resources
  • Developed by PlatinumSolutions using open source
    software

10
Why Open Source for LANG?
  • Compressed schedule, limited funding
  • Can be deployed internally and customized
    replaces in-agency systems
  • Can be deployed at member agencies or centrally,
    no licensing restrictions
  • Paranoid agencies can peak inside
  • Flexible Can accommodate other agencies,
    implementations

11
Why not Proprietary?
  • Off the shelf solutions did not exist
  • Needed to be able to customize for each agency in
    unpredictable areas
  • Very short development time frame
  • Needed to respond to change quickly
  • Agencies want full ability to audit code
  • Needed to integrate with many components

12
LANG Statistics
13
LANG Statistics
14
Outcome
  • Core development done in 4 months with 3
    developers
  • Project Cost very low development cost, no
    ongoing fees or licensing
  • Large number of agencies participate in working
    group
  • Highly effective system that drastically improves
    the process of sharing

15
Why OSS from PM POV?
  • Do more with less
  • Reduce project complexity and effort, no
    reinventing wheels
  • Provide structure, logical divisions, separation
    of concern
  • Increase Quality full code audit, better
    testing, easier for novice developers
  • Faster agile development, pre-developed
    components

16
Other OSS Benefits
  • Standards Compliance
  • No Proprietary Lock-in, stick ups, and
    project-plan killing closed system dead-ends
  • Consistency
  • License Management, Costs

17
What is a Framework?
  • A framework is a partially complete software
    system that is intended to be instantiated.
  • It defines the architecture for a family of
    systems and provides the basic building blocks to
    create them.
  • It also defines the places were adaptations for
    specific functionality should be made.
  • (Buschmann 1996)

18
Framework Advantages
  • Brings structure and consistency to application
    development
  • Shortens development schedule
  • Reduces project risk and cost by removing
    complexity, builds on tried and tested
    foundations
  • Provides generic services such as logging,
    security, and persistence

19
Frameworks Solid Design
  • Encourages industry-accepted best practices,
    including separation of concerns (SOC) and
    component-oriented programming (COP)
  • Better component and module isolation easier to
    manager, distribute tasks, test, and deploy
  • Design patterns, best of breed components

20
Components
  • What Is A Component?
  • "An entity that fulfills a specific role or
    provides a specific service".
  • Should be replaceable with another component that
    fulfills the same role
  • Every other technical industry relies on
    component manufacturing why not software?

from Mike Nash's Putting the Pieces Together
http//www.platinumsolutions.com/2002-11-12_Puttin
g_The_Pieces_Together.pdf
21
Service
  • To some degree, overlaps with component
  • A service is often made up of several components
    working together
  • All services are a component, but not vice-versa
  • Services are more general-purpose than
    components. Services provide system functions
    not specific to business, such as an
    authorization or scheduler service

22
Meta-Frameworks
  • A toolkit designed to Span, bridge and connect
    together multiple application frameworks and
    toolkits.
  • Allow multiple component models to interact
    efficiently
  • Allow the features and benefits of one framework
    and toolkit to be used in another.
  • Use the best component for the job, no matter
    what framework or architecture

from Mike Nash's Putting the Pieces Together
23
Keel OS Meta-Framework
www.keelframework.org
  • An open source framework based on J2EE
  • Ideally suited for large scale application
    development
  • Distributed, message-based architecture
  • Pluggable spine / implementation-independent

24
Keel Offers
  • Keel is a highly extensible backbone for
    integrating commercial and open source components
  • Connects multiple frameworks, toolkits, and
    services, treating each one as a back box
  • Extreme deployment flexibility From single
    machine to distributed message-driven
  • Open Source that Already Works

25
Before Keel
  • Services are bound directly
  • Becomes difficult to upgrade and maintain
  • Very difficult to switch services
  • Ball of Mud

26
After Keel
  • Commercial and Open Source services plug in to
    a backbone
  • Provides strong guidance for development
  • Easy upgrade, modify

27
Keel Design
28
Implementation Detail
29
Keel Container
  • Leverages Apache Avalon
  • Avalon provides Separation of Concerns (SOC) Do
    one thing at a time, don't blur boundaries
  • The Keel container provides Inversion of Control
    (IOC), a specific instance of SOC
  • The container takes components through a
    lifecycle, gives it environment info
  • The component has no ability to call the
    container
  • Environment can be changed without affecting the
    component

30
Keel Configs and Lifecycles
  • The Keel container takes components through a
    lifecycle create, manage, run, and terminate
    them
  • Examples Securable, Poolable, Configurable,
    Suspendable, Threadsafe

31
Keel Models Explained
  • Smallest unit of work in Keel
  • Has one required method execute()
  • Models have inputs, outputs, and commands
  • Models are faceless, they have absolutely no
    knowledge of how they will be interacted with in
    a GUI, command line, etc.

32
Model Example
/ _at_avalon.component _at_avalon.service
typeorg.keel.services.model.Model
_at_x-avalon.info namehoj.hello
_at_x-avalon.lifestyle typesingleton
_at_model.model name"hoj.hello"
id"hoj.hello" logger"hoj" / public class
HelloWorld extends StandardLogEnabledModel
public ModelResponse execute(ModelRequest
request) throws ModelException
ModelResponse res request.createResponse()
res.addOutput("hello", "Hello World")
return res
33
Securing the Model
/ _at_avalon.component _at_avalon.service
typeorg.keel.services.model.Model
_at_x-avalon.info namehoj.hello
_at_x-avalon.lifestyle typesingleton
_at_model.model name"hoj.hello"
id"hoj.hello" logger"hoj" / public class
HelloWorld extends StandardLogEnabledModel
implements Securable public ModelResponse
execute(ModelRequest request) throws
ModelException ModelResponse res
request.createResponse()
res.addOutput("hello", "Hello World")
return res
34
Putting Models Together
  • Sequences provide a simple 1, 2, 3 progression
    between models. Configured in XML
  • Workflows provide a far more powerful, non-linear
    progression between models.
  • Workflows support nester sub-flows, conditional
    logic, etc.

35
Keel Workflow
36
A Complex Workflow
37
Keel Build
  • Keel provides a powerful ANT-based build system
  • Build system will package Keel application into
    appropriate deployment form (WAR, EAR, etc.)
  • Build system will automatically fetch open source
    components from web

http//ant.apache.org
38
Keel Deployments
  • Keel provides incredible deployment flexibility
    from a single server, to a fault-tolerant cluster
    by changing build parameters
  • Deployed components can communicate via web
    services, asynchronous messages, or direct
    channels

39
Basic Deployment
All deployment diagrams from Distributed
Web-Applications using the Keel
Meta-Framework by Michael Nash, Keel
Meta-Framework Core Developer http//www.developer
.com/java/ent/article.php/3286461
40
Deployment 2
41
Deployment 3
42
Deployment 4
43
Deployment 5
44
Keel Demonstrations
45
Conclusion
  • J2EE / Open Source is a powerful combination, but
    it is extremely complex
  • Frameworks provide order, discipline, building
    blocks, and plumbing
  • The Keel Meta-Framework is a powerful open source
    framework that provides incredible benefits to
    development and deployment
  • Don't re-invent the wheel!

46
  • For a copy of these slides
  • http//www.platinumsolutions.com/resources/

email adam.rossi_at_platinumsolutions.com
Write a Comment
User Comments (0)
About PowerShow.com