Title: Declarative%20Programming%20and%20the%20Business%20Unit
1Declarative Programming andthe Business Unit
- Strategies for Custom Application Cost Reduction
- Dan McCreary
- Dan McCreary Associates
- September 11, 2007
2DISCLAIMER
- The following views are my own and do not
necessarily reflect the views of the Minnesota
Department of Revenue or the State of Minnesota
3Presentation Abstract
- Title Declarative Programming and the Business
Unit - Description For the last few years software
development has seen a dramatic growth in the use
of XML in all aspects of information systems.Â
What began as a convenient way to store
structured documents and server configuration
files has morphed into complete systems that are
built using only XML and XQuery. - The amount of procedural code written in new
systems is dropping dramatically. This has had a
large impact on the ability of business units to
create and maintain their own requirements and
business logic without the need for an extensive
software development staff. - This presentation discusses how XML has allowed
business units to precisely capture the "what"
(sometime graphically) without the need to be
concerned with the "how" systems are
implemented. We will present a full example of a
rich-client web application that has been defined
and built using only a pure "declarative" style
of model-driven software development. These
technologies include CSS, XForms, XML Schemas,
XML Transforms, XQuery and business rules. We
will also discuss how pushing this power out to
the business unit requires new data stewardship
and business semantics skills to be emphasized.
4Audience Survey
- How many people here
- Work for organizations that have web sites?
- Are currently creating web applications?
- Are familiar with XML syntax?
- Have heard of the term declarative?
- Are moving toward service orientation?
- Have an enterprise service bus?
- Have a metadata registry?
- Regularly do ROI analysis on emerging
technologies?
5Incoming!
Has this web thing gone away yet?
XML
6How did we get here?
- From punch cards
- to tables
- to trees
- to cubes and graphs
7In the Beginning
and there were 80 columns and the widths were
fixed and batches of cards were called
"decks and they were loaded into tables in
core memory
8And Codd and Date said
- Let there be relationships
Person
Project
Role
person_id
project_id
person_id
first_name
project_nm
project_id
last_name
description
role_nm
birth_date
status
time_pct
and we had the relational databases and we had
SQL and we had joins and we had ER
diagrams and we had PowerBuilder and all seemed
right with the worlduntil
9Sir Berners-Lee Said
lthtmlgt ltheadgt lttitlegtDans
Homepagelt/titlegt lt/headgt ltbodygt
lth1gtWelcome!lt/titlegt ltpgtWelcome to my web
site!lt/pgt lta href"about.htm"gtAbout Melt/agt
lt/bodygt lt/htmlgt
and we had URIs and we had HTTP and we had we
links and resources and we had trees (not
tables) and we had searchuntil
10Customers Said..
- We wanted to access our tableson the webin HTML!
html
?
head
body
h1
p
a
and there were objects and there was Java and
JSP and there was ASP.Net and there were
models, views, controllers and there was
conversion from forms to objects to tables and
tables to objects to forms and there were rooms
and rooms of programmers
11The Translation Pain Chain
Web Forms
Objects
RDBMS
- From web forms to objectsto SQL insertsto
selectsto objects and back to web forms - Many format translations
- Impedance mismatch
12And there Was Chaos
HTML Forms
html
Objects
JSP/ASP
head
body
Hibernate
Serialization
h1
p
a
100 Frameworks
OR Mapping
Struts
JavaScript
XML
JDBC
SQL
.Net
AJAX
Sessions
Stored Procedures
And the number of languages you need to learn
and the headcount of the IT departmentwent
upand up
RDBMS
13And the W3C Said
- Let their be simplicitywhat if weallowed you to
put XML in the browserand database
html
Database
head
body
model
input
label
14Database Vendors that Support XQuery
- IBM DB2 Version 9 PureXML
- Microsoft SQL Server 2005
- Oracle 10g Release 2 Enterprise Edition
- eXist (open source)
- 50 others
15Evolution Metaphors
- Specialization of Languages
- Generalization of Languages
16Evolution Specialization
- Darwins Galapagos Finches
- Beaks are highly adapted to different food
sources - Finches adapted to specific ecological "niches
over millions of years of isolated evolution
- Similar to domain-specific declarative languages
See Wikipedia "Darwin's Finches"
17Evolution Generalization
- Generalization The Raccoon
- The world has a higher population of raccoons
today due to their ability to quickly adapt to
changing urban environments - Similar to highly adaptive procedural languages
18Computer Science Abstractions
Higher abstractions
time
19The Software Development Process
Declarative Languages
Requirements (BA)
Test (QA Staff)
Design (Architect)
Build (Programmer)
- Requirements are about What
- Design and Build is about How
20A Declarative System Is
- A software development system, tailored to a
specific domain (such as web applications), used
to capture precise business requirements within
the context of a problem domain (the implicit
context) - Declarative systems do not specify how
requirements are implemented to build working
systems. Declarative systems only define the
requirements - Declarative systems document requirements in
specialized vocabularies and can be used to
generate entire working systems including user
interfaces, persistence and test data - Declarative systems specifically omit some
assumed requirements (such as system
availability, performance, reliability, security
etc) - A Declarative system is a set of "little
languages" with precise semantics that fit
together like a puzzle to solve a problem
21HTML, CSS and SQL
xquery version "1.0" lthtmlgtltbodygt lth1gtOld
Expensive Bookslt/h1gt ltulgt for book in
doc("books.xml")//book order by
book/title return ltligt book /title,
book/author, book/price,
book/pubyear lt/ligt lt/ulgtlt/bodygtlt/htmlgt
/ global CSS used by all web pages / body
font-family Arial, Helvetica, sans-serif
font-size 75 margin 0 padding 0
width 1000px h1 color blue padding 0
15px
lt?xml version"1.0" encoding"UTF-8"?gt lthtml
xmlns"http//www.w3.org/1999/xhtml"gt ltheadgt
lttitlegtDeclarative Systemslt/titlegt lt/headgt
ltbodygt lth1gtIntroduction to Declarative
Systemslt/h1gt ltp class"author"gtDan
McCrearylt/pgt ltp class"date"gtApril 2007lt/pgt
lt/bodygt lt/htmlgt
HTML
CSS
XQuery
- HTML, CSS, XQuery and SQL are declarative
languages using these definitions - The semantics or meaning of each tag in the
file is determined by an external organization - The syntax does not have to be XML
-- Old expensive books SELECT title, author,
price, pubyear FROM books WHERE price gt 100
AND pubyear BEFORE 1960 ORDER BY title
SQL
22XML Schema Sample
- Screen capture of Altova XML Spy
- 30 minutes to learn graphical notation
See http//www.altova.com/products/xmlspy/graphic
al_xml_schema_editor.html
23XML Schema (XMLSpy Diagram)
Solid linemeans required
Data Element
Sequence of items
Dashed linemeans optional
Cardinality
Definition
Graphical notation that most non-programmers can
learn in 20 minutes.
24Use Case Electronic Forms
- User fills out a web-based form
- Typical requirements may include listing of data
to be gathered, data types, validation codes and
data repetition patterns - Examples
- HTML Forms
- XForms
- InfoPath
25Forms Players
lthtmlgt ltheadgt ltxfmodelgt
ltxf/modelgt ltheadgt ltbodygt ltxfinputgt
lt/xfinputgt lt/bodygt lt/htmlgt
My-XForm.xhtml
See Wikipedia XForms
26What Is Declarativeness for A Context?
- Efficiency at capturing the testable business
requirements in a semantically precise and
concise manner - Example Is a field optional? Will validation of
the data fail if the field is missing? - Ability of each data element to have precise
meaning over time and within organizations
Schema Drawing Tool
XML Schema File (.xsd)
XForms
xfinputrequired font-weight bold
xfinputrequired .xf-value
background-colorfff6af requiredafter
font-weightbold font-size1.5em
content "" color red
XForms CSS tags
27Declarative Spectrum
HTML
CSS
Apache Ant
C
AssemblyLanguage
Python
Java
C
C
XSL
XML Schema
XQuery
XForms
XPath
Groovy
XUL
JavaScript
Ruby
perl
XQuery Update
SQL
- For any given context different languages have
different levels of declarativeness - General purpose languages are less abstract but
can solve a wide variety of problems - Declarative languages have a more narrow purpose
and target a specific problem like styling a web
page or selecting data
28Middle-Tiers Remain Procedural
declarativeness
user
database
Presentation/style (client tier)
Data definition, insert,selection and
update (persistence tier)
Business Logic (middle tier)
- When the interface is consistent, declarative
languages flourish - Middle tiers tend to have the most variation
- Wikipedia lists over 200 web application
frameworks - CMSMatrix.org lists over 700 content management
systems
See http//en.wikipedia.org/wiki/List_of_web_appl
ication_frameworks and http//www.cmsmatrix.org
29The Application Development Puzzle
30Filling In Each PieceWith A Declarative Language
Metadata Registry
CSSHTML
XMLSchema
XQuery
BPEL
XForms
XQuery Update
Cocoon
ApacheAnt
XSL
31Semantically Precise Vocabularies
Standard Domain
Atom/RSS Syndication/Notification
ACORD Insurance Industry Forms Data
FpML Financial Products Markup Language
FixML Banking (Financial Information eXchange)
HL7 Healthcare (now using XML)
MISMO Mortgage Industry
NIEM National Information Exchange Model (registry)
OTA OpenTravel Alliance (Travel industry)
SIF School Interoperability Framework
GJXDM US Department of Justice (registry)
XBRL XML Business Reporting Language
See http//en.wikipedia.org/wiki/CategoryXML-bas
ed_standards
32Metadata Shopping Tools
Phone
Address
FirstName
- You dont need to know about 100,000 SKUs to
purchase 10 items from a grocery store - Sub-schema generation tools give you exactly what
you need and nothing more
See http//niem.gtri.gatech.edu/iepd-ssgt/SSGT-Sea
rchSubmit.do
33(No Transcript)
34If You Use Industry StandardsYou Could Be
Almost Done
- If you use industry standards
- and these standards publish their documents in
XML Schema format - and these standards have been transformed from
XML Schema to XForms - and you use native XML databases to store and
XQuery to report on the data - then sample applications have been created and
do not require additional procedural code - just change the constraints in the XML Schema and
rerun the transforms
See http//www.exist-db.org
See also http//www.alphaworks.ibm.com/tech/purex
ml
35Accessibility
Lower costs by moving routine logic maintenance
to lower levels in the pyramid
36Java Libraries
10,000 class and 100,000 methods available but
which ones are relevant to your business problem?
37Less is More
- XForms 1.1 has only 21 XML elements
- Much of the presentation of XForms is deferred to
CSS - Event management is deferred to the XML Events
- XML binding is deferred to the XBL standard
Mies van der RoheReconstruction of theGerman
Pavilion in Barcelona
See Wikipedia Minimalism
38XForms is Only 21 Elements
- Message
- Model
- Repeat
- Secret
- Select
- Select1
- Switch
- Submission
- Submit
- Textarea
- Trigger
- Bind
- Case
- Input
- Instance
- Group
- Help
- Hint
- Label
- Load
- Output
Color coding limited vocabularies can increase
the speed of pattern matching. Look for advanced
text editors to provide custom element coloring.
39The New Semantics of "Nutshell"
- The 1.4 release of Java 2 Standard edition
increases the size of the platform by 50, to
2,757 classes in 135 packages - 1.5 and 1.6 add additional classes
992 pages
nutshell something of small size, amount, or
scope in a nutshell in a very brief statement
40Procedural Programming is Not All Poison
- It would be a mistake to tell all your procedural
programmers that the programs they are creating
are fundamentally evil - The relevant questions are
- How closely does it fit the problem domain?
- Can BAs, SMEs and other non-programmers maintain
the business rules? - What are the chances that others will be able to
maintain it in future years? - How good are the development tools for your
system?
41If You Give a Kid a Hammer
the whole world becomes a nail
- People solve problems using familiar tools
- People develop specific Cognitive Styles based
on training and experience - What are we teaching the next generation of
developers?
Source Shoshana Zuboff In the Age of the
Smart Machine (1988)
42Semantics
- The science of meaning
- What you mean when you say cat
- How do you associate meaning with symbols
(verbal, physical, textual) - How do we know if we both mean the same thing
when we use a word? - What if a word has multiple meanings?
Reference WordNet
43Semantic Triangle
concept
cat
symbol
referent
- Symbols can only link to referents through
concepts - You can not link directly from a symbol to a
referent
Wikipedia Semiotic triangle
44Communication
cat
- Domestic feline
- House pet
- Has fur
- Has whiskers
- Sometimes has fleas
- Chases mice
- Domestic feline
- House pet
- Has fur
- Has whiskers
- Sometimes has fleas
- Chases mice
- Communication involves exchanging symbols that
describe common attributes - A one-to-one match of attributes that describe a
common symbol match implies a high precision match
45Same symbol different meaning
customer
- Little match of common attributes
- Low precision semantic match
46High and Low Precision
- The ideal is to have a precise standard and to
use the data elements exactly as they were
intended
47Semantic Precision
- Semantic mappings are relative in time and
between groups of people (organization) - Semantic variability over time
- Something that has precise meaning to you today
may not have the same precise meaning a year from
now - Our memories are imperfect and change over time
- Semantic variability across organizations
(project and organization) - A customer to one organization may denote a
person but to another organization it may denote
a company
48Semantics of an XML Data Element
ltcodegt47lt/codegt
- A developer puts an XML data element in an xml
file - The tag has some meaning and the data within the
tag has some meaning when it was created by the
developer - What is the probability
- That the developer will know the same meaning of
the code 47 one year later - That another project that opens file will
understand and be able to use the meaning of the
tag - Vague standards often trigger vague
interpretations of the meaning of data
49The Heart of the Enterprise
The Metadata Registry
A metadata registry is a central location in an
organization where metadata definitions are
stored and maintained in a controlled method.
http//en.wikipedia.org/wiki/Metadata_registry
50Semantic Precision in Space and Time
space (projects, organizations)
Large SemanticFootprint (long lifetimesystems)
world
enter-prise
dept.
team
Small SemanticFootprint (rapid prototype)
person
time
weeks
months
years
10 years
51Use Procedural Glue
XForms XML(REST)
Procedural Glue
XQuery Update (JDBC)
- XForms uses a REST interface to send XML to a
server - Some XML databases (DB2 v9) sill use JDBC
interfaces to insert XML documents - Use procedural glue to build custom interfaces
between systems with incompatible interfaces
52How Quickly Can We Create New Declarative
Languages?
- Configuration files are really just small
languages - Configuration files are easy to parse, validate
data using XML tools and build custom forms to
use - Easy to teach non-programmers to graphically
build XML Schemas to validate XML files - Answer About a week
53How Quickly Can We Create Consensus?
- Example XForms standard
- Work started in 2001
- XForms 2.0 is still a two to three years away
- How can we accelerate this consensus building
process?
What factors impact the rate that species
evolve? What impact does life span have on a
species? How are design ideas exchanged between
species?
54Solution Wikis and Collaboration
- How long does it take to build consensus on the
semantics of a new data element? - How many people might use this declarative
language? - The larger the stakeholder group, the longer it
takes
55In the Can vs. On The Wire
- Make my data insert and update quickly
- Extract, Transform and Load (ETL)
- SQL Skills
- Create shared meaning between systems
- Register the meaning in a metadata registry
- XML Skills
Enterprise Service Bus
Metadata
56Strategic Consequences
- Empowerment of business units to build and
maintain their own applications with much less
involvement of IT staff - Dramatically reduces the need for middleware IT
staff using traditional procedural languages like
Java and C
57Strategic Impact
- Consider this
- 50 of Applications are simple CRUD Applications
- Create, Read, Update, Delete
- Complex business logic can be stored in an
XML-based rules engine such as Schematron - How will this transform an organization?
- How will it allow business units to build and
maintain IT applications? - How will it allow the business to be responsive
to customer needs?
58Change Where the Line is Drawn
Requirements
Requirements
BAs
SME
Developers
vs.
- Shorten the distance between the business unit
and the IT staff
59Many Small vs. One Large
CSS
XForms
XSLT
XPath
XQuery
XML Schema
Business Rules
- It is easier to build a GUI on a small, precise
language than a single large language
60Data Stewardship/Governence
- Importance of the business units role in defining
data elements semantics on-the-wire - How to write and maintain enterprise definitions
- Concise
- Precise
- Distinct
- Non-circular
- Unencumbered
61Parker Projection
RelativeCode Base
100
Time
Source Jason Parker, Minnesota Department of
Revenue, November 2006
62Recommendations
- Use semantically-precise declarative systems over
procedural systems when the business problem is
in the right context - Aggressively promote data stewardships within
business units - Use controlled vocabularies and metadata shopping
tools to allow non-programmers to select data
elements from lists - Separate semantics (leaf elements) from
constraints (branches) - Leverage the pattern matching portion of the
right brain using graphical development tools and
element-based syntax coloring editors - Use procedural code to build interfaces between
incompatible systems - Isolate procedural by providing XML/REST service
wrappers code behind semantically precise web
services - Dont expect your procedural programmers to jump
on the declarative bandwagon without some
training - Use social networking tools (voting, wikis) to
rank and find appropriate data elements
63Next Steps For IT Strategists
- Read some articles on the semantic web
(Scientific American) - Read a book on business semantics
- Convince yourself it works
- Google for XForms Examples
- Google for XQuery Example
- Create a pilot project
- Pick a "friendly" business unit
- Find a medium-sized problem
- Train staff with XPath-centric tools
- Roll out to the enterprise in stages
64XForms Wikibook
- http//en.wikibooks.org/wiki/Xforms
- Over 75 working XForms example programs
65Devx Article
- Semantics and the Evolution of Specialized
Languages - http//www.devx.com/semantic/Article/34805
66Thank You!
- Dan McCreary
- Dan McCreary Associates
- Enterprise Data Architecture Consulting
- dan_at_danmccreary.com
- http//www.danmccreary.com
- Cell (612) 986-1552
- Home (952) 931-9198