+ All Categories
Home > Documents > XOOPS Cube, 8th Dec, 2007

XOOPS Cube, 8th Dec, 2007

Date post: 31-May-2018
Category:
Upload: xoops-cube
View: 218 times
Download: 0 times
Share this document with a friend

of 56

Transcript
  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    1/56

    XC 8th Dec, 2007

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    2/56

    This releases purpose

    This is snapshot of a sandbox branch.

    Review Task Mechanism and Rendering Sequence.

    Includes a light-weight sample that uses new

    mechanisms.

    Other mechanisms (Cube 0.9 features) are not

    implemented.

    CVS: minahito_sandbox branch of XCube_PHP4.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    3/56

    Roadmap

    2008 Jun ... next snapshot

    2008 Feb ... Alpha

    Fix Virtual Service Mechanism.

    Fix Manifesto File Format.

    2008 Mar ... Beta

    2008 May ... Stable

    Finish Document Work

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    4/56

    If we need sample BASE to prove the spec of XOOPS

    Cube, I need more time.

    And, Legacy may steal much time from a developer.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    5/56

    XOOPS Cubes MISSION

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    6/56

    Exchangable CMS layer (aka BASE)

    Site Owners can use free combination subsystems.

    Site Owners can use free combination modules.

    Site Owners can use free combination themes.

    Site Owners can tweak their site easily.

    Developers work each mechanism in combination free.

    Needs a mechanism so that modules may run on multi

    BASEs easily.

    A Part Of Goals

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    7/56

    To realize those, the core has to provide Common Process

    Mechanism to the BASE side.

    Detachable & Insert Free Sequential Process.

    Rendering Sequence for Undefined Final Output.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    8/56

    XOOPS Cube

    0.9BASE

    DRIVE

    MECHANISM

    RENDERING

    SEQUENCE

    SELFINITIALIZATION BASE's mission

    0.9 Implementation

    BASE has to implement each Drive Mechanism.

    Initialize ROOT.

    BASE's DRIVE MECHANISM

    Delegate

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    9/56

    This version

    Implemented Initialization, Drive Mechanism and

    Rendering Sequence.

    XOOPS Cube

    8th Dec, 2007BASE

    DRIVE

    MECHANISM

    RENDERING

    SEQUENCE

    SELF

    INITIALIZATION

    Use

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    10/56

    BASEs index.php is 3 line.

    XCube_Root::execute() is 12 line for 3 processes.

    This is easy.

    You need to understand Task technic & Render

    Sequence.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    11/56

    XOOPS Cube Main Routine

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    12/56

    Bases index.php is just 3 lines.

    Typical index.php

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    13/56

    XCube_Root::execute() is 12 lines.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    14/56

    Initialization, Drive Mechanism and Rendering Sequence.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    15/56

    Core defines the type of gears, and SWITCH ON!

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    16/56

    Initialization

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    17/56

    Exchangable CMS layer (aka BASE)

    Site Owners can use free combination subsystems.

    Site Owners can use free combination modules.

    Site Owners can use free combination themes.

    Site Owners can tweak their site easily.

    Developers work each mechanism in combination free.

    Needs a mechanism so that modules may run on multi

    BASEs easily.

    Confirm Missions

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    18/56

    XOOPS Cube got to initialize itself, without BASE.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    19/56

    Writes all configuration on the setting ini file.

    The core uses inner default setting for empty setting

    item.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    20/56

    Drive Mechanism

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    21/56

    Exchangable CMS layer (aka BASE)

    Site Owners can use free combination subsystems.

    Site Owners can use free combination modules.

    Site Owners can use free combination themes.

    Site Owners can tweak their site easily.

    Developers work each mechanism in combination free.

    Needs a mechanism so that modules may run on multi

    BASEs easily.

    Confirm Missions

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    22/56

    The traditional programing technic Task is

    availableness.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    23/56

    A kind of the traditional programing technic for modulable

    sequential process.

    Its good at CHANGE, EXCHANGE and EXTEND verymuch.

    Many programers know this popular technic.

    You can search Process Control Block or Task Control

    Block in Wikipedia, to know this technic.

    This is also known as the traditional technic of Japanese video

    game development.

    What is Task!?

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    24/56

    Task is a Common Socket, so its easy that modules

    become able to run on multi BASEs.

    This is not original way but the traditional & popular

    way of the computer world. So its easy to understand.

    Or many programers know already.

    This technic has a good experience for missions like

    XOOPS Cube.

    It is like ActionFilter. But, its possible that the form of the

    task list changes and receive new tasks in runtime.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    25/56

    Im going to explain that part:

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    26/56

    1. The Root generates the root task.

    2. The BASE joins its tasks as child tasks to the root task.

    3. At the base tasks initialization, the task joins

    requirement tasks of active modules.

    4. It handles the list of tasks as the sequential process.

    Overview

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    27/56

    At the beginning, generates a root task.

    This task does nothing.

    RootTask

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    28/56

    Orders BASE to generate BASE tasks.

    RootTask

    BaseTask

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    29/56

    BASE may join the plural tasks, if it needs those.

    RootTask

    BaseTask

    BasePostTask

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    30/56

    The Root begins initialization for the task list.

    At the base tasks initialization, the task joins

    requirement tasks of active modules.

    RootTask

    BaseTask

    BasePostTask

    BlockFoo1

    MainFoo1

    BlockFoo2

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    31/56

    The sequential process has been just decided.

    Go the sequential process:

    RootTask

    BaseTask

    BasePostTask

    BlockFoo1

    MainFoo1

    BlockFoo2

    2

    1

    6

    5

    4

    3

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    32/56

    Site Owners can exchange BASE.

    RootTask

    BaseTask

    BasePostTask

    BlockFoo1

    MainFoo1

    BlockFoo2

    2

    1

    6

    5

    4

    3

    OtherBaseTask

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    33/56

    Modules tasks has possibility to run on other BASEs.

    RootTask

    BaseTask

    BasePostTask

    BlockFoo1

    MainFoo1

    BlockFoo2

    2

    1

    6

    5

    4

    3

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    34/56

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    35/56

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    36/56

    The core has many uncertainties

    Dont force the specific theme layout.

    The core doesnt know futures extensions:

    breadcrumb list, additional javascript and so on.

    The core doesnt know that the core should render for

    how many times, how many groups and how many

    categories.

    The core has to provide exchangable render-system. It

    doesnt force the specific render-system.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    37/56

    XOOPS Cube got hints from real-time 3D rendering.

    And, XC 0.9 implemented the basic of those.

    This version implemented more better unity rendering

    sequence.

    Im going to describe step by step:

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    38/56

    XOOPS Cube doesnt force the specific theme layout.

    In other words, XOOPS Cube doesnt know the layout.

    Head

    Left

    Foot

    Main

    Head

    Left

    Foot

    Center

    Right

    Breadcrumb list

    CenterL CenterR

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    39/56

    Head

    Left

    Foot

    Main

    But, it can trust that the final output is just one.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    40/56

    The final output consists of sub output of sub parts.

    Foot

    Main

    Left

    Head

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    41/56

    Head

    Left

    Foot

    Main

    Fixedness: XOOPS Cube has to put sub parts rendering

    before final rendering.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    42/56

    Render System is exchangable.

    Rendering Process is exchangable.

    But, tasks need the unity rendering sequence.

    Anyway, the final output is just 1. The core has to render

    sub parts as material before the final output.

    The final output is composite picture.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    43/56

    But, the order of Detachable & Combination Free

    sequential process is out of order for rendering.

    RootTask

    BaseTask

    BasePostTask

    BlockFoo1

    MainFoo1

    BlockFoo2

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    44/56

    Video games address the same challenge, but videogames make custom-built rendering sequence for each

    title.

    XOOPS Cube applies the generic-purpose rendering-

    engine idea to this challenge.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    45/56

    Im going to explain that part:

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    46/56

    1. Collector collects Render Operation from tasks on the

    list.

    2. Collector makes operations in-order.

    3. Execute rendering. Because Collector class is final

    class, the core uses Visitor class that is extendable.

    Overview

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    47/56

    Generates a collector. It makes a tour of tasks on the

    list.

    Collector class is final class. Its impossible to extend.

    In the future, Collector class will be optimized for

    performance. So you should not touch it.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    48/56

    Tasks having a drawable element pass Render Operation

    to the Collector.

    RootTask

    BaseTask

    BasePostTask

    BlockFoo1

    MainFoo1

    BlockFoo2

    2

    1

    6

    5

    4

    3

    Collector

    Collector

    BlockTask1

    RenderOperation

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    49/56

    Op1

    Op2

    Op3

    Op4

    Op5

    Op6

    Op3

    Collector Collector

    Op1

    Op2

    Op3

    Op4

    Op5

    Op6

    Op3

    Corrector sets right for in-order.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    50/56

    The collector prepared materials by fixed data type

    and fixed logic.

    You can not exchange those, but rendering is executed

    by exchangable Visitor.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    51/56

    Collector/Visitor is good for variable amounts and

    unknown contents.

    BASE does not need to prepare rendering, cache

    preparations and recognize amounts.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    52/56

    Exchangable Visitor is fixed? A developer will modify

    this line by next version.

    P.S.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    53/56

    Attentions

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    54/56

    This version has only simple code for logic-test.

    Many lines are empty. So, review with this document.

    Better snapshot will be released next month.

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    55/56

    XOOPS Cube try to define re-use unit as a task of unity

    DRIVE MECHANISM.

    XOOPS Cube need re-use modules, not re-use libraries.

    Its really difficult, so I dont have other idea.

    I applied the new approach A module (engine) for theunity control system that manges workload of hardware

    thread to clear XOOPS Cubes difficult requirements.

    http://research.cesa.or.jp/pdf/shiryo6-2-3.pdf

  • 8/14/2019 XOOPS Cube, 8th Dec, 2007

    56/56


Recommended