SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Inventing the future
Business Programming Language
Inventing the Future
Business Programming Language
                      Inventing a new
                       business
                       programming
                       language
                       may be an
                       act of insanity.

                      But someone
                       will eventually
                       do it.
The future is now.
The nature of the thing
we are programming
is changing.
   Traditional programming languages
    are designed around the concept
    of a programmable calculator.

   But this model has always been
    largely irrelevant for business automation.

   Object-oriented languages extend the calculator model
    the statement syntax is still bound to an algebraic pattern.
Any major business process involves a
network of collaborating agents




 How do we program a network of collaborating agents?
Instead of Algebra
    – use natural language syntax.
   Follow the conventions of written natural language.

   Use a syntax that is convenient to the user.
    Avoid syntax that is not.

   A good notation
    should be readable
    and easily entered.
                                      <XML>
How do we make natural language
                          work?
                 The whole statement is the
                  “method signature.”

                 The nouns in the statement
                  identify variables.

                 Variables are assigned
                  values from a white-board.
                  (context relevant data
                  store)_
If we are programming
a network of collaborating agents,
what kind of notations do we need?
   Plan: For each business goal, we need a plan.
   Procedure: For each action, we need a procedure.
   Dictionary: Identify nouns and their relationships.
   Data: Transport request/response messages.

   Dialog: Provide the client / user interface.
    −   Respond to client questions and commands.
    −   Client invokes goals / actions.
    −   Dialog may also be informational.
   View: Provide document metaphor.
    −   Fill-in-the-blank forms. (Render as HTML form ...)_
Nouns identify variables.
   Nouns identify entities, attributes.
    Dictionary: Energy service vocabulary.
     Site attributes include type, address, route.

     A site has a collection of services.

     Service attributes include type, meter, remote-switch.

     A service is a product.

     Meter attributes include type, configuration, GPS.

     A meter is a distribution-asset.

     A distribution-asset is an asset.




This is a dictionary frame. Each dictionary frame identifies
entities, attributes, super-types, collections, and categories (enumerations).
How do we provide inheritance?
               Dictionary frames include
                “... is a ...” statements.

               These statements
                identify super-types.

               The statement matching process
                enables subtype nouns
                to be used in the slot
                for a super-type.
How do we enable
specialization?


   Two different action statements
    may have a signature that only differs by the
    subtype / super-type in the same word slot.

   When matching a reference to a definition,
    the interpreter prefers the subtype version
    to the super-type version.
Naturally, natural language notations
enable internationalization.
     There is a small number of keywords and a small
      number of domain-specific statement patterns.
      These can be replaced with equivalents
      from most European languages.

     I do not have the expertise
      to address the question
      of other languages.
Work-flow is the essence of
business process automation
Task: Start electrical service for customer at site.
Post-Condition: Electrical service at site billed to
  customer's account.
Preconditions:
 Customer's account approved for credit.

 Electrical service installed at site.

 Electric meter installed on service.

Action:
 Field Service: Turn-on the electric service.


This is a task frame.   Each task frame describes
a g o a l, a set of precedence relations, and a transitional action.
Chain task frames into plan trees.


   A plan tree is formed by back chaining
    from a goal through the task-frame preconditions.

   The action statement in a task frame may be
    executed when the preconditions are met.

   Enabled tasks on the “branches” of the tree
    may be processed concurrently.

   Parallel processing is implicit in the notation.
Agents are assigned actions.
Role: Field Service.

Action: Turn-on the electric service.
 If service meter has remote-power-switch:

    − AMI: Signal the meter to turn-on the service.
 Else:

    − Dispatcher: Send a one-man crew to turn-on the service.

This is a    role-action frame.
Each action frame describes a set actions
that may be assigned to a r o l e.
An role may delegate some steps to other roles.
Task frame ==> parallel process.
Action frame ==> sequence.
The future
      is now ...
   In the future ...
     −   The reception desk
         may be in a virtual world.
     −   The user interacts with an avatar.

   Sensors are evolving.
     −   Dialog logic should not be tied to specific sensors.
   The user interface may be rendered
    in multiple ways using multiple media.
     −   Dialog logic should not depend on the rendering.
Programming the avatar - speaking part
  Dialog: Hello yourself.
  Context: Greeting.

  User: Knock, knock.
  System: Who's there?

  User: *.
  System: * who?

This is a dialog frame. The notation is similar to a stage play,
but pattern matching enables flexible dialogs (protocols)
with variable input and output.
Responding to sensors ...



Dialog: Space flight simulator.
Context: Pitch and roll rate. (Translate from control stick.)_

U: Make the pitch and roll rates P and R degrees per second.
S: (Don't talk. Just do it.)_
. Pitch-Thruster: Produce P degrees/second change in pitch.
. Roll-Thruster: Produce R degrees/second change in roll rate.
 Sensor inputs are mediated by a scribe (dialog agent)
 to isolate technology dependence.
Fill-in-the-blank ... (Electronic Forms)
View: User.                            This is a view frame
                                       defining a fill-in-the-blank
!!! User Preferences                   electronic form.

                                       The notation is similar
E-Mail: [e-mail] Name: [name]
                                       to wiki mark-up.
Digest frequency: [digest-frequency]

Self description: [description 5]

Fields are rendered according to type.
Example: The digest-frequency field is a category (enum)
                          typically rendered as a drop-down list.
Don't waste time on data processing.
Use built-in standard solutions.
    Persistence: Programmers spend too much time
     deciding what to store, when, and how.

    Messaging: Programmers spend too much time
     deciding what to send, when, and how.

    Conversion: Programmers spend too much time
     writing code that converts measurements
     between currencies and units of measurement.

    Metrics: Programmers spend too much time
     writing code for standard accounting and metrics.
Persist everything.
    Purge per records retention policy.
   Don't waste time designing persistence.
   Change the problem from persistence to retention.
World Base … Temporal Database
   Micro-fact: (entity, attribute: value, w5).
    −   Smalltalk: (entity, attribute) -> (value, w5).

   Event (w5): (who, what, when, where, why).
    −    Who: data source (user or client identifier)
    −    What: statement causing the change.
    −   When: timestamp (UTC)
    −   Where: agent mediating the change
    −    Why: job ticket

   History: (entity, attribute, time-period: value, w5).
    −   time-period: (when start, when end).
Messenger
Do it once, one way.
   Actions are work-orders.

   Agents check-in / out
    with Resource Manager.

   Messenger provides
    store-and-forward
    asynchronous network.
In business data,
numbers are
measurements,
not mathematical
abstractions.
   Spurious precision
    should be obsolete.
   Track error propagation.

   Track unit of measure.
   Provide automatic conversion
    to preferred unit of measure.
…
 after
  the
horse
  has
  left
  the
 barn
Resource Accounting
Job Ticket                     Bookkeeper
 Assign a job ticket           Accumulate

  to each client request.        resource usage by:
                                   −   Job
   Track                          −   Agent
    resources consumed             −   Resource Pool
    by the job.                    −   Action
                                   −   Goal
                                   −   Client
   Sub-job (delegated task)       −   (custom dimensions)
    rolls up to parent job.
                                  Track inventory.

                                  Pricing is a plug-in.
Resource Manager -- Plug In

  For many
enterprises,
 specialized
   resource
 scheduling
         is a
    secret
    sauce
How do you test a business process?

 Simulations:
    Agents replaced by “sim-bots.”
    Drive from dialog frames
     using standard regression testing tools.
    Drive from message history (requests to agents).
    Durations from history (bookkeeper).
    Durations from annotations.
    World-Base snapshot from real-world world-base.
The critical component is the
open-source community process.
   The thing that distinguishes frameworks today
    is their community process.

   Think about how the community process makes
    current frameworks quite different:
    −   CORBA ... UML ... MDA ... ebXML ... BPEL
    −   Apache ... Mozilla ... JBoss
    −   BSD Unix ... Linux ... Ubuntu
    −   C++ ... C# ... Java ... Python ... Smalltalk
The critical component is the
open-source community process.
   The thing that distinguishes frameworks today
    is their community process.

   Think about how the community process makes
    these frameworks quite different in character:

    −   CORBA ... UML ... MDA ... ebXML ... BPEL
    −   Apache ... Mozilla ... JBoss
    −   BSD Unix ... Linux ... Ubuntu
    −   C++ ... C# ... Java ... Python ... Smalltalk
    −   Second Life … Croquet Consortium
Extensions / Plug-Ins / Sub-projects
Infrastructure                  Application
 Smart IDE                      Bookkeeper

    −   Code Critic                 −   Resource Pricing
    −   Version Control             −   Inventory Pricing
    −   Ontology Merge             Domain Dictionaries
   Messenger                       −   Utility Vocabulary
    −   Hub                         −   Factory Vocabulary
    −   Gateway                     −   Retailing Vocabulary
    −   Peer to Peer               Business Templates
   World Base                      −   Customer Relations
    −   OQL                         −   Order Fulfillment
    −   Extract (Simulation)_       −   Utility
    −   Export (to RDBMS)_          −   School
Summary
   A programming environment is a set of notations
    and a run-time.
   Each notation presented here is derived from a
    well-known notation in another domain.
   The language design assembles the notations
    into a consistent and coordinated system.

   While the notations provide a better and more
    efficient expression of intent,
    the bigger break-through comes from eliminating
    repetitive data processing tasks
    from the programmer’s work-load.
How and Why
How                      Why
 Pick application area.  Scratch your itches
                            − There ought to be
 Identify audience.
                              a better way.
 Design notations.         − Tired of solving
                              the same problem
 Try them out.
                              over and over
 Refine (iterate).
                                New environments
                                 −   new problems
   Write the manual first.      −   new opportunities
   Write translator.
                             Advance
   Write the run-time.       the state of art
   Iterate some more.         − Identify problems
                                 −   Find the root cause

   Deploy a usable product
Questions
and
Answers

Weitere ähnliche Inhalte

Ähnlich wie Inventing the future Business Programming Language

Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
ahkjsdcsadc
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 Notes
Ross Lawley
 

Ähnlich wie Inventing the future Business Programming Language (20)

70 536
70 53670 536
70 536
 
WWX14 speech : Justin Donaldson "Promhx : Cross-platform Promises and Reactiv...
WWX14 speech : Justin Donaldson "Promhx : Cross-platform Promises and Reactiv...WWX14 speech : Justin Donaldson "Promhx : Cross-platform Promises and Reactiv...
WWX14 speech : Justin Donaldson "Promhx : Cross-platform Promises and Reactiv...
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Into the domain
Into the domainInto the domain
Into the domain
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
 
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmxMoved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
 
2011-02-03 LA RubyConf Rails3 TDD Workshop
2011-02-03 LA RubyConf Rails3 TDD Workshop2011-02-03 LA RubyConf Rails3 TDD Workshop
2011-02-03 LA RubyConf Rails3 TDD Workshop
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 Notes
 
73d32 session1 c++
73d32 session1 c++73d32 session1 c++
73d32 session1 c++
 
Chapter no 1
Chapter no 1Chapter no 1
Chapter no 1
 
Qcon
QconQcon
Qcon
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event Sourcing
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applications
 
Spark Summit EU talk by Ruben Pulido Behar Veliqi
Spark Summit EU talk by Ruben Pulido Behar VeliqiSpark Summit EU talk by Ruben Pulido Behar Veliqi
Spark Summit EU talk by Ruben Pulido Behar Veliqi
 
Empowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with AlternatorEmpowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with Alternator
 
Brownfield Domain Driven Design
Brownfield Domain Driven DesignBrownfield Domain Driven Design
Brownfield Domain Driven Design
 
Resume
ResumeResume
Resume
 
Hsc IT Chap 3. Advanced javascript-1.pdf
Hsc IT Chap 3. Advanced javascript-1.pdfHsc IT Chap 3. Advanced javascript-1.pdf
Hsc IT Chap 3. Advanced javascript-1.pdf
 
Resume
ResumeResume
Resume
 
SOA, Microservices and Event Driven Architecture
SOA, Microservices and Event Driven ArchitectureSOA, Microservices and Event Driven Architecture
SOA, Microservices and Event Driven Architecture
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Inventing the future Business Programming Language

  • 1. Inventing the future Business Programming Language
  • 2. Inventing the Future Business Programming Language  Inventing a new business programming language may be an act of insanity.  But someone will eventually do it.
  • 3. The future is now. The nature of the thing we are programming is changing.  Traditional programming languages are designed around the concept of a programmable calculator.  But this model has always been largely irrelevant for business automation.  Object-oriented languages extend the calculator model the statement syntax is still bound to an algebraic pattern.
  • 4. Any major business process involves a network of collaborating agents How do we program a network of collaborating agents?
  • 5. Instead of Algebra – use natural language syntax.  Follow the conventions of written natural language.  Use a syntax that is convenient to the user. Avoid syntax that is not.  A good notation should be readable and easily entered. <XML>
  • 6. How do we make natural language work?  The whole statement is the “method signature.”  The nouns in the statement identify variables.  Variables are assigned values from a white-board. (context relevant data store)_
  • 7. If we are programming a network of collaborating agents, what kind of notations do we need?  Plan: For each business goal, we need a plan.  Procedure: For each action, we need a procedure.  Dictionary: Identify nouns and their relationships.  Data: Transport request/response messages.  Dialog: Provide the client / user interface. − Respond to client questions and commands. − Client invokes goals / actions. − Dialog may also be informational.  View: Provide document metaphor. − Fill-in-the-blank forms. (Render as HTML form ...)_
  • 8. Nouns identify variables. Nouns identify entities, attributes. Dictionary: Energy service vocabulary.  Site attributes include type, address, route.  A site has a collection of services.  Service attributes include type, meter, remote-switch.  A service is a product.  Meter attributes include type, configuration, GPS.  A meter is a distribution-asset.  A distribution-asset is an asset. This is a dictionary frame. Each dictionary frame identifies entities, attributes, super-types, collections, and categories (enumerations).
  • 9. How do we provide inheritance?  Dictionary frames include “... is a ...” statements.  These statements identify super-types.  The statement matching process enables subtype nouns to be used in the slot for a super-type.
  • 10. How do we enable specialization?  Two different action statements may have a signature that only differs by the subtype / super-type in the same word slot.  When matching a reference to a definition, the interpreter prefers the subtype version to the super-type version.
  • 11. Naturally, natural language notations enable internationalization.  There is a small number of keywords and a small number of domain-specific statement patterns. These can be replaced with equivalents from most European languages.  I do not have the expertise to address the question of other languages.
  • 12. Work-flow is the essence of business process automation Task: Start electrical service for customer at site. Post-Condition: Electrical service at site billed to customer's account. Preconditions:  Customer's account approved for credit.  Electrical service installed at site.  Electric meter installed on service. Action:  Field Service: Turn-on the electric service. This is a task frame. Each task frame describes a g o a l, a set of precedence relations, and a transitional action.
  • 13. Chain task frames into plan trees.  A plan tree is formed by back chaining from a goal through the task-frame preconditions.  The action statement in a task frame may be executed when the preconditions are met.  Enabled tasks on the “branches” of the tree may be processed concurrently.  Parallel processing is implicit in the notation.
  • 14. Agents are assigned actions. Role: Field Service. Action: Turn-on the electric service.  If service meter has remote-power-switch: − AMI: Signal the meter to turn-on the service.  Else: − Dispatcher: Send a one-man crew to turn-on the service. This is a role-action frame. Each action frame describes a set actions that may be assigned to a r o l e. An role may delegate some steps to other roles.
  • 15. Task frame ==> parallel process. Action frame ==> sequence.
  • 16. The future is now ...  In the future ... − The reception desk may be in a virtual world. − The user interacts with an avatar.  Sensors are evolving. − Dialog logic should not be tied to specific sensors.  The user interface may be rendered in multiple ways using multiple media. − Dialog logic should not depend on the rendering.
  • 17. Programming the avatar - speaking part Dialog: Hello yourself. Context: Greeting. User: Knock, knock. System: Who's there? User: *. System: * who? This is a dialog frame. The notation is similar to a stage play, but pattern matching enables flexible dialogs (protocols) with variable input and output.
  • 18. Responding to sensors ... Dialog: Space flight simulator. Context: Pitch and roll rate. (Translate from control stick.)_ U: Make the pitch and roll rates P and R degrees per second. S: (Don't talk. Just do it.)_ . Pitch-Thruster: Produce P degrees/second change in pitch. . Roll-Thruster: Produce R degrees/second change in roll rate. Sensor inputs are mediated by a scribe (dialog agent) to isolate technology dependence.
  • 19. Fill-in-the-blank ... (Electronic Forms) View: User. This is a view frame defining a fill-in-the-blank !!! User Preferences electronic form. The notation is similar E-Mail: [e-mail] Name: [name] to wiki mark-up. Digest frequency: [digest-frequency] Self description: [description 5] Fields are rendered according to type. Example: The digest-frequency field is a category (enum) typically rendered as a drop-down list.
  • 20. Don't waste time on data processing. Use built-in standard solutions.  Persistence: Programmers spend too much time deciding what to store, when, and how.  Messaging: Programmers spend too much time deciding what to send, when, and how.  Conversion: Programmers spend too much time writing code that converts measurements between currencies and units of measurement.  Metrics: Programmers spend too much time writing code for standard accounting and metrics.
  • 21. Persist everything. Purge per records retention policy.  Don't waste time designing persistence.  Change the problem from persistence to retention.
  • 22. World Base … Temporal Database  Micro-fact: (entity, attribute: value, w5). − Smalltalk: (entity, attribute) -> (value, w5).  Event (w5): (who, what, when, where, why). − Who: data source (user or client identifier) − What: statement causing the change. − When: timestamp (UTC) − Where: agent mediating the change − Why: job ticket  History: (entity, attribute, time-period: value, w5). − time-period: (when start, when end).
  • 23. Messenger Do it once, one way.  Actions are work-orders.  Agents check-in / out with Resource Manager.  Messenger provides store-and-forward asynchronous network.
  • 24. In business data, numbers are measurements, not mathematical abstractions.  Spurious precision should be obsolete.  Track error propagation.  Track unit of measure.  Provide automatic conversion to preferred unit of measure.
  • 25. … after the horse has left the barn
  • 26. Resource Accounting Job Ticket Bookkeeper  Assign a job ticket  Accumulate to each client request. resource usage by: − Job  Track − Agent resources consumed − Resource Pool by the job. − Action − Goal − Client  Sub-job (delegated task) − (custom dimensions) rolls up to parent job.  Track inventory.  Pricing is a plug-in.
  • 27. Resource Manager -- Plug In For many enterprises, specialized resource scheduling is a secret sauce
  • 28. How do you test a business process? Simulations:  Agents replaced by “sim-bots.”  Drive from dialog frames using standard regression testing tools.  Drive from message history (requests to agents).  Durations from history (bookkeeper).  Durations from annotations.  World-Base snapshot from real-world world-base.
  • 29. The critical component is the open-source community process.  The thing that distinguishes frameworks today is their community process.  Think about how the community process makes current frameworks quite different: − CORBA ... UML ... MDA ... ebXML ... BPEL − Apache ... Mozilla ... JBoss − BSD Unix ... Linux ... Ubuntu − C++ ... C# ... Java ... Python ... Smalltalk
  • 30. The critical component is the open-source community process.  The thing that distinguishes frameworks today is their community process.  Think about how the community process makes these frameworks quite different in character: − CORBA ... UML ... MDA ... ebXML ... BPEL − Apache ... Mozilla ... JBoss − BSD Unix ... Linux ... Ubuntu − C++ ... C# ... Java ... Python ... Smalltalk − Second Life … Croquet Consortium
  • 31. Extensions / Plug-Ins / Sub-projects Infrastructure Application  Smart IDE  Bookkeeper − Code Critic − Resource Pricing − Version Control − Inventory Pricing − Ontology Merge  Domain Dictionaries  Messenger − Utility Vocabulary − Hub − Factory Vocabulary − Gateway − Retailing Vocabulary − Peer to Peer  Business Templates  World Base − Customer Relations − OQL − Order Fulfillment − Extract (Simulation)_ − Utility − Export (to RDBMS)_ − School
  • 32. Summary  A programming environment is a set of notations and a run-time.  Each notation presented here is derived from a well-known notation in another domain.  The language design assembles the notations into a consistent and coordinated system.  While the notations provide a better and more efficient expression of intent, the bigger break-through comes from eliminating repetitive data processing tasks from the programmer’s work-load.
  • 33. How and Why How Why  Pick application area.  Scratch your itches − There ought to be  Identify audience. a better way.  Design notations. − Tired of solving the same problem  Try them out. over and over  Refine (iterate).  New environments − new problems  Write the manual first. − new opportunities  Write translator.  Advance  Write the run-time. the state of art  Iterate some more. − Identify problems − Find the root cause  Deploy a usable product