Introducing Apache is Is Slides

Embed Size (px)

Citation preview

  • 7/31/2019 Introducing Apache is Is Slides

    1/12

    Introducing

    Apache Isis

  • 7/31/2019 Introducing Apache is Is Slides

    2/12

    Ubiquitous Language

    With a conscious effort by the team, thedomain model can provide the backbone

    for that common language

    Eric Evans,Domain Driven Design

  • 7/31/2019 Introducing Apache is Is Slides

    3/12

    What is Naked Objects ?

    An Architectural Pattern automatically renders domain

    objects in an OOUI

    fits in with thehexagonal architecture

    A Principle all business functionality is

    encapsulated on thecore business objects

    problem solver, not processfollower

    A natural bed-fellow forDomain-Driven Design rapid prototyping &

    development

  • 7/31/2019 Introducing Apache is Is Slides

    4/12

    An example of theDRY Principle

    The UI representations

    correspond directly

    with the underlying

    domain object model

    So, for instance:

    objects instances exposed as icons

    object properties / collections exposed in forms

    object methods exposed as menu items

    eg Claim#submit(Approver)

    repositories/domain services exposed as desktop icons

    eg ClaimRepository, EmployeeRepository

  • 7/31/2019 Introducing Apache is Is Slides

    5/12

    What is Apache Isis ?

    Apache Isis combines the naked objects pattern

    with the hexagonal architecture

  • 7/31/2019 Introducing Apache is Is Slides

    6/12

    Isis apps are just pojos

  • 7/31/2019 Introducing Apache is Is Slides

    7/12

    The Isis Programming Model

    Runtime support

    Annotations

    Business Rulesthrough Conventions

    Behaviourally Complete

    Pojo

    Dependency injection

    Bytecode enhancements

    Declarative business rules

    Rendering hints

    see it

    use it do it

    know-whats

    know-how-tos

    contributed actions

    Entity

    Value

    Repository & Services

  • 7/31/2019 Introducing Apache is Is Slides

    8/12

    So what does the app look like?

    Let's see...

    mvn archetype:generate \-D archetypeGroupId=org.apache.isis.support \-D archetypeArtifactId=quickstart-archetype

  • 7/31/2019 Introducing Apache is Is Slides

    9/12

    Resources

    Apache Isis Incubator website links to the mailing list (isis-dev), IRC (#apache-isis)

    links the wiki, JIRA

    http://incubator.apache.org/isis how to use Isis quickstart archetype

    Richard Pawsons original thesis on Naked Objects http://incubator.apache.org/isis/Pawson-Naked-Objects-thesis.pdf

    Dan Haywoods book http://www.pragprog.com/titles/dhnako

    Naked Objects on .NET http://nakedobjects.net

  • 7/31/2019 Introducing Apache is Is Slides

    10/12

    T e DS :

    Why?

    Strategic

    Agility

    Strategic

    Agility

    Respond tounforeseenchanges inbusiness

    requirements

    Operational

    Agility

    Operational

    Agility

    Provide

    clericalofficers with

    greaterflexibility to

    solvecustomers'problems

    Technical

    Agility

    Technical

    Agility

    Accommodatechanges intechnology

  • 7/31/2019 Introducing Apache is Is Slides

    11/12

    T e DS

    What? Platform for the future generation of

    business systems

    the common BOM (a shared kernel)

    a technology platform UI, remoting, bespoke ORM, ...

    Specific applications replacing & extending existing

    administration systems: State pensions, Free Travel, Household Benefits, ECS, ...

    Overpayment/Debt Management system, Medical Referrals, ...

    Integration with other systems, technologies and depts

    BizTalk messaging, batch, scanning, barcodes, ...

    Central Printing, SMS, other media, ...

  • 7/31/2019 Introducing Apache is Is Slides

    12/12

    Why the DSP's Naked Objects systemmakes for an interesting story:

    One of the purest examples of domain-driven design for a large-scale transactional

    business application, anywhere in the worldExtreme re-use and sharing of objects between applications

    Enables easy modification in response to changing business requirements

    Domain-driven design

    Possibly the first large-scale application of agile development within the public sector,

    anywhere in the world

    Agile Development

    A rich user interface to a core transactional business system

    Empowered Users

    User interfaces 100% auto-generated from the underlying business objects

    with no custom coding to write or to maintain

    More opportunity to explore domain than otherwise possible

    Powerful & Productive Environment