EMB Designer

This chapter describes EMB Designer’s characteristics, components, and relevant information.

1. Overview

EMB Designer is a GUI tool that implements ProFrame’s EMB technology. It is used to create service and application modules. It is embedded in Studio. It allows to create application modules and develop a new service by assembling multiple modules without coding. For information about how to create EMB modules, refer to Starting EMB.

2. Characteristics

EMB Designer has the following characteristics.

  • Visualizes service business logic.

    • Service design and development

    • Applications and workflows

    • Complex integrated services

    • Service assembling and disassembling

    • Easy service implementation

  • Minimizes dependency between applications.

  • Makes application logic as assets.

  • Increases resource reusability.

  • Model Driven Architecture (MDA)

    Visually models business logic and converts it into executable source to implement MDA.

    Category Description

    Source Generation Engine

    A service flow created with EMB Designer is converted into actually available skeleton code by Source Generation Engine.

    C Skeleton Code

    C skeleton code is C code that sequentially and structurally implements workflow by calling source code converted through Source Generation Engine as a static function. In other words, C skeleton code includes code progression according to the order of flow, function calls, and function definitions. A developer can rapidly complete a module that handles a unit task by adding some code to the skeleton code. This kind of modules are combined and become a service module that can be externally called.

The following describes the benefits of using EMB Designer for each role.

Role Description

Designer

Efficiently designs service logic flow.

Worker

Intuitively understands the workflow.

Developer

Shortens development time and develops logical services by adding necessary code to Skeleton Code created for each workflow.

3. Components

EMB Designer can be integrated with not only modules created in Studio but also various resources created in another TmaxSoft system such as ProFactory, ProRule, and ProBus. You can create a service’s business logic flow by dragging and dropping the modules.

The following modules can be created in EMB Designer.

  • Service module

    Includes other modules as a top-level ProFrame module like a batch module. While submodules are not exposed to outside as a service, this module consists of a transaction that is exposed to outside and has a transaction code used for calling.

    Business and DBIO modules can only be accessed by calling from a service module.

    In EMB Designer, a service module allows to create a new service by combining and placing submodules and other modules that are saved in ProFrame’s Resource Pool as business logic.

  • Business module

    Actual service contents. Used by calling from a service module. A business module is distinguished with implementation complexity, usage, manageability, and runtime performance, but the most important thing is reusability. The key successful factor of using EMB is extracting and reusing a repeated and common part as a business module.

  • Pre-processing module

    Application pre-processing module. You can create with the same method as for business modules. Create this module if there is a common job before a service module call. If not, use a service module.

  • Post-processing module

    Application post-processing module. You can create with the same method as for business modules. Create this module if there is a common job after a service module call. If not, use a service module.

  • DBIO module

    ProFrame provides all functions to access a database separately from an application. All the functions are defined in a separate development environment, DBIO Editor of Studio, and used by other modules through abstract API.

  • Template module

    Create repeated jobs for each application and common business logic flow as a template. You can use this template when creating an actual module.

  • Batch module

    Used for large volume of batch jobs. Exposed to outside as a service. Batch code is required to call this module.

4. Environment Configuration

The following describes preferences about Design Editor and Source Editor that are required to use EMB Designer embedded in Studio.

4.1. Design Editor

The following describes how to check and set preferences about Design Editor in Studio.

  1. Select [Window] from the main menu and then select [Preferences] > [ProFrame] > [Design Editor].

  2. In the open dialog box, set desired items and click [OK].

    To apply changes without closing the dialog box, click [Apply]. To restore the default settings, click [Restore Defaults].

    figure2 1
    Studio – Design Editor Preferences
    • Node Information

      Settings about nodes in flow diagrams.

      Item Description

      Width

      Width of a node.

      Height

      Height of a node.

      Font

      Font of text expressed in a node.

    • Search Option

      Settings used when searching for a specific module from Resource Pool View.

      Item Description

      Search Method

      Search method.

      • Automatic search: Displays search results after a few seconds after entering a search word.

      • Search Manually: Displays search results after entering a search word and clicking [Search].

      Select scope

      Search scope (either All or User).

      Select search name

      Either logical or physical name used to search for resources.

      • Logical name

      • Physical name

      Select search sequence

      Location of a search word.

      • Starts for keyword starting with: Searches for items from the start word.

      • Keyword containing: Searches for items including entered word.

      Assigning Position

      Position where items are added (either Top or Bottom).

    • Document

      Settings about output created when selecting [Export To Document] in EMB Designer.

      Item Description

      Creation path

      Path where output is saved.

      Clicking [Path search] can specify a path in a developer’s local computer.

      Show Artifacts

      Option to create output.

    • Wizard Options

      Settings about options used in the Create a new Service Module dialog box. Copy Physical Name To Service Name Copy Physical Name To Batch Code Copy Physical Name To Trade Code Service Name: Changed to uppercase. Bach Code Name: Changed to uppercase. Trade Code Name: Changed to uppercase.

    • Etc.

      Item Description

      Show Save Dialog

      Shows a window with a notification message after save.

      Show Tooltip

      Shows a tooltip about a node when you hover the mouse over the node.

      Show Call Depth

      Shows the number of calls of a Call module. The number in red is displayed at the top right of the module’s node.

      Delete Mappings When Node deleted.

      Permanently deletes relevant mapping information from a database when deleting a mapped Call module.

4.2. Source Editor

The following describes how to check and set preferences about Source Editor in Studio.

  1. Select [Window] from the main menu and then select [Preferences] > [ProFrame] > [Source Editor].

  2. In the open dialog box, set desired items and click [OK].

    To apply changes without closing the dialog box, click [Apply]. To restore the default settings, click [Restore Defaults].

    figure2 2
    Studio – Source Editor Preferences
    Item Description

    Don’t move when double-clicked in out of module-info area.

    Module information comments mean comments automatically created in Source Editor when creating an EMB module. The comments start with /**** and end with ****/. Double-clicking a module information comment goes to the corresponding node in module editor.

    If cleared, double-clicking any point in Source Editor goes to a node in the corresponding coding area.

    No color for module information.

    If cleared, a square box and color is displayed around the module information comment.

    No border color for coding area

    If cleared, the set color is applied to lines that start with "//DO_NOT_MODIFY_THIS_LINE…" for readability.

    No text color for coding area

    If cleared, color for text code in the coding area is changed to the color set with the submenu.

    Text color

    Color for each item when check boxes above this check box are cleared.

    • Text color for coding area

    • Keyword color for coding area

    • Commend color for coding area

    • Border color for coding area

    If all the check boxes are cleared, the Source Editor page is as follows:

    figure2 3
    Sample Source Editor Page

5. Screen Layout

In EMB Designer, you can assemble and disassemble modules such as service, business, and DBIO modules and also designs EMB modules by using various auxiliary tools.

The screen consists of the following three main areas (①~③) and one auxiliary area (④).

figure2 4
EMB Designer Screen Layout

① Module editor

② Palette

③ Toolbox

④ Views

Module editor

In this area, you can create a flow diagram of an EMB module and design a service or application flow by selecting various resources from Palette (②).

  • Components

    The module editor provides the following four tabs at the bottom left.

    Tab Description

    design

    Design Editor allows to create a service or application flow. This tab is useful for EMB module creation because it visually shows sub or application flows.

    {physical_name}.smd

    Meta Editor shows XML information of an EMB module, where XML is a meta file used in ProFrame.

    Meta files' extension varies depending on the resource modules.

    • Service module: {physical_name}.smd

    • Business module: {physical_name}.md

    • Batch module: {physical_name}.btm

    source

    Source Editor shows source of a module created in Design Editor.

    header

    Header Viewer shows contents of header files of a created EMB module.

Palette

This area lists diagrams and resources that can be used to create a service or application flow. It has functions that can be used to create a flow diagram in Module Editor. However, when opening a RI resource, editing functions (Modules, Call Modules, and Batch) are hidden and only views are shown. The functions for searching and calling resources are only for RI area resources.

Function Description

Select

Used to select one node.

Marquee

Used to select multiple nodes.

connection

Used to connect or reconnect nodes.

Modules

Inner Module

Used to insert an inner module to service or application flow diagram.

Virtual Module

Used to insert a virtual module to service or application flow diagram.

Loop Module

Used to insert a loop module to service or application flow diagram.

Call Modules

File IO Loop

Used to insert a FileIO module to service or application flow diagram. Available only when FileIO Plugin is installed.

DBIO Call

Used to insert a DBIO module to service or application flow diagram.

BM Call

Used to insert a business module to service or application flow diagram.

Batch

Tx Begin

Used to process TX Begin. Shown only for Batch Editor.

Tx Commit

Used to process TX Commit. Shown only for Batch Editor.

Tx Rollback

Used to process TX Rollback. Shown only for Batch Editor.

DB Commit

Used to process DB Commit. Shown only for Batch Editor.

DB Rollback

Used to process DB Rollback. Shown only for Batch Editor.

Batch Call

Used to insert a batch module to service or application flow diagram.

Properties View

Used to check or set properties of a selected module.

Variable View

Shows lists of variables used in modules.

Mapping View

Shows lists of mappings used in modules.

Virtual Functions

Used to create a general function with developer-defined parameters and use it in a service or application flow diagram.

Resource Pool

Used to search for resources.

Search Module

Used to search for call modules used in modules.

Toolbox

This area provides icons of functions that are frequently used to create service or application flows.

The following describes each icon.

Icon Description

image

Opens a dialog box that sets and changes a module’s input structure. Enabled when selecting top-level start node.

image

Opens a dialog box that sets and changes a module’s output structure. Enabled when selecting top-level start node.

image

Sets a selected node’s exception handling. Enabled when selecting a start or Inner node.

image

Opens a dialog box that defines CommBuff. Enabled when clicking the Module Editor area.

image

Opens a dialog box that defines constants. Enabled when clicking the Module Editor area.

image

Opens a dialog box that defines contexts. Enabled when clicking the Module Editor area.

image

Opens a dialog box that defines structures. Enabled when clicking the Module Editor area.

image

Opens a dialog box that defines local variables. Enabled when selecting a start or Inner node.

image

Opens a dialog box that sets loop pre and post-processing. Enabled when selecting a Loop module.

image

Opens a dialog box that writes code to insert to a source file. Enabled when selecting a Virtual module.

image

Opens a dialog box that sets input mapping of a Call module. Enabled when selecting a Call module. (Not supported in the current version. Only bypass is available)

image

Opens a dialog box that sets input mapping of a module that currently opens in the editor. Enabled when selecting a space other than another module in EMB. (Not supported in the current version.)

image

Opens a dialog box that sets output mapping of a Call module. Enabled when selecting a Call module. (Not supported in the current version. Only bypass is available)

image

Opens a dialog box that sets output mapping of a module that currently opens in the editor. Enabled when selecting a space other than another module in EMB. (Not supported in the current version.)

image

Enabled when selecting multiple modules that have the same parent node. Used to set and cancel the XOR setting for these modules.

image

Checks source. Enabled when clicking the Module Editor area.

image

Used to add a Fetch execution node. Enabled when selecting a DBIO module.

image

Used to reconfigure a module. Enabled when selecting a Call module.

image

Copies a selected node to clipboard.

image

Pastes a copied node under a selected node.

image

Deletes a selected node.

image

Executes a unit test for a selected module.

image

Starts log view.

image

Stops log view.

image

Executes undo.

image

Executes redo.

image

Shows all the subnodes of a Call module. The subnodes cannot be edited because they are read-only in Module Editor.

image

Expands the Module Editor area.

image

Collapses the Module Editor area.

image

Executes source creation. Enabled when clicking the Module Editor area.

Views

This area shows detailed information about EMB modules, mapping information between modules, registered resources, etc. For example, you can check virtual functions, variables, and resource pools.

The following only describes the Properties view. For information about other views required to create EMB modules, refer to Creating a Flow. For information about each module, refer to Unit Test.

Properties view is used to check or reset properties of a created EMB module.

To display the Properties view, click Properties View in Palette or select [Window] > [Show View] > [Properties] in Studio.

The following describes each property in the Properties view for service modules.

Property Description

Build

Makefile

Creates and saves Makefile to use when building a service module through the Makefile edit dialog box.

ComBuf

Commbuf

Opens the Define CommBuff dialog box that sets CommBuff variables.

Constant

Constant

Opens the Define constant dialog box that sets constants.

Context

Context

Opens the Define context dialog box that sets contexts.

Header

Include header

Opens the Include header edit dialog box that additionally sets header files. Enter header files to add in the dialog box.

Post Processing

Post process input mapping

Sets input mapping between a post-processing module and a selected service module.

Post process module

Searches and sets post-processing modules.

Post process output mapping

Sets output mapping between a post-processing module and a selected service module.

Pre Processing

Pre process input mapping

Sets input mapping between a pre-processing module and a selected service module.

Pre process module

Searches and sets pre-processing modules.

Pre process output mapping

Sets output mapping between a pre-processing module and a selected service module.