AP04_3web.vp
1 Introduction
We have developed a new component-based software
development framework called MZ-Platform. This research,
financed by METI (Ministry of Economy Trade and Industry),
started in 2001 and is planned as a 5 years research project
[1]. The aim of this project is to develop a new tool for the
manufacturing industry, particularly for small and medium
size enterprises, that enables engineers themselves to de-
velop new CAx (i.e., CAD, CAM, CAE, CAT as a whole) pro-
grams and strengthen their competitiveness.
Information technology (IT) tools, typified by CAD, have
become indispensable for manufacturing enterprises in order
to enhance their productivity. However, the costs of purchas-
ing IT tools, maintaining the systems, and training engineers
and operators for tools, are a heavy burden for small and
medium-size enterprises. The burden becomes much heavier,
if they try to customize tools to make the most of the ability.
According to our survey, current CAD tools have abun-
dant general functions, but are too general for small and
medium-size enterprises, because CAD tools are designed
to satisfy the diversified requirements of the aerospace,
shipbuilding, and automobile industries. Particularly die and
metal mold design for mechanical parts, in the design of
which small and medium-size enterprises play a key role in
Japan, requires specialized techniques and skills that are diffi-
cult to replace by current CAD tools, which mainly focus on
supporting tasks in the early stage of product design.
We conclude that easy-to-use software development tools,
generous supplies of software parts (components) and semi-
-finished CAD (or CAx) tools will encourage small and
medium-size enterprises. MZ-Platform is designed for this
purpose and we have developed basic software modules
of the MZ-Platform: Component-Bus, Application-Builder,
XML-Component-Transmutation, and Remote-Component-
-Collaboration. We have also developed an application called
MZ-Checker, which can verify the quality of 3-dimensional ge-
ometry data, such as the distance or the break angle of two ad-
jacent free-form surfaces. We consider that the MZ-Checker
development has attested the capability of MZ-Platform as a
development tool. In this paper we show the algorithm, the
system architecture of MZ-Platform, and a new parametric
modeling scheme that overcomes the current parametric data
issues.
2 Background and related work
The idea of component-based development (CBD) is well
known in software engineering [2]. In CBD, software sys-
tems are built by assembling components already developed
and prepared for integration. Component-based software
engineering (CBSE) has become a subdiscipline of software
engineering, and much research has been done, but mainly
on software architecture and software architecture description
languages [3]. On the other hand, commercial CBD tools,
such as Visual Basic, .NET framework of Microsoft Corpora-
tion [4], are quite powerful, but they do not have special
features directly related to CAx application development. In
the development of the CAD system, Dassault Systems, the
major CAD vendor, has adopted a component-based devel-
opment concept called the OM component model [2] for its
product CATIA. The OM component model will be utilized
when we enhance the CATIA functions. Though they seem
to have ample functions, we do not use them because our
component-framework is not based on CATIA.
In order to design a tool to make CAx systems, flexibility
of component connection is a key concept, because CAD data
represented in object-oriented language, such as Java, be-
comes a component.
3 MZ-Platform: a component-based
software development framework
MZ-Platform is a fully event-driven component develop-
ment and execution framework, based on Java and JavaBeans
component model technology. The architecture is shown in
Figure 1. When users want to make a CAx software tool
through the use of MZ-Platform, the first thing they have
to do is to consult the Component Library (Fig. 1). Many
components have been prepared, such as GUI components,
graphic library components, database access components and
components for remote access in Component Library. As a re-
sult, users may find components that are commonly used in
CAx tools in the Component Library.
Some functions specific to user-demands have to be de-
signed and developed in the conventional programming
environment, and these functions are to be made in the form
of components. After storing these components to Compo-
© Czech Technical University Publishing House http://ctn.cvut.cz/ap/ 47
Acta Polytechnica Vol. 44 No. 3/2004
A Component-based Software
Development and Execution Framework
for CAx Applications
N. Matsuki, H. Tokunaga, H. Sawada
Digitalization of the manufacturing process and technologies is regarded as the key to increased competitive ability. The MZ-Platform
infrastructure is a component-based software development framework, designed for supporting enterprises to enhance digitalized
technologies using software tools and CAx components in a self-innovative way. In the paper we show the algorithm, system architecture,
and a CAx application example on MZ-Platform. We also propose a new parametric data structure based on MZ-Platform.
Keywords: component-based development, CAD, parametric modeling.
nent Library, users can develop a software tool using Compo-
nent Builder loading components from the Library, and
“wiring” those components. Throughout the process, users
can check the actions of components and assembled compo-
nents (applications) anytime they want through the functions
of Application Builder. In this way, we suppose that nonspe-
cialists in software can develop a CAx tool very quickly.
3.1 Component bus
The core of MZ-Platform is the event-handling module
called Component Bus. Component Bus controls all events
from components using the connection objects. When an
event from component A to component B has occurred,
Component Bus receives this event and, if component B is
ready to activate, invokes component B and sends the event to
component B. To establish a connection between compo-
nents, Component Bus uses the reflection of Java language,
which enables all the methods that the component has to be
seen through a reflection interface.
Connection of objects is designed to propagate events.
The concept of a connector object plays an important role
in the study of Architectural Definition Language (ADL), but
few currently available component frameworks have such a
kind of intermediate object. Almost all component frame-
works connect components directly, because of simplicity. We
employ connector objects because they allow us abundant
flexibility to change the component assembly in a dynamic
way, namely, to change the connection while the program
is running.
It is frequently seen in CAx applications that, according
to the change of real number of geometry dimensions, the
algorithm (and program) is to be switched. The problem
is that there is no absolute dimension value (the thresh-
old value) at which it should switch, but it depends on the
environment like the accuracy of computer hardware. For
example, at the corner of break lines we usually define a semi-
circle to smooth them. But if the break angle becomes near
180 degrees, we can no longer define a semicircle at the
corner because the radius goes to infinity. Usually, the switch
of the algorithm is coded within one component, but, it is
difficult to switch correctly as the threshold value depends on
the environment. Component Bus can handle this switching
much more easily because the switch of program can be coded
as the assembly of components, and the threshold value can
easily be accommodated.
3.2 Component Library
We developed GUI (Graphical User Interface) compo-
nents, 3-dimensional geometry visualization components
based on Java3D, and other components helpful for building
CAx applications, such as a component that calculates the dis-
tance of geometry entities. These components are serializable
JavaBeans and are stored in JAR format files. Component Bus
loads components from Component Library. If a new compo-
nent is developed, it has to be stored in Component Library
to be utilized as a part of MZ-Platform.
The abundance of Component Library is one of the key
issues for MZ-Platform to be an easy-to-use tool and, at the
same time, assistance on how to use the components is also
important. As this project is planned to continue until 2005,
we try to enrich Component Library continuously.
3.3 Application Builder
Application Builder is the user interface module to define
the component assembly. An example of a user defined com-
ponent assembly screen is shown in Fig. 2. Each rectangle of
the screen represents a component, and the lines between the
rectangles represent the method invocations, the name of
which is shown above the line.
Once the connection between components is defined,
Component Bus invokes the components and creates a con-
nector object simultaneously.
Users can select several different modes of Application
Builder using the buttons at the bottom of the screen, which
are application execution mode, screen layout mode and
48 © Czech Technical University Publishing House http://ctn.cvut.cz/ap/
Acta Polytechnica Vol. 44 No. 3/2004
( Event Handling between Components )
MZ-Platform
ComponentAComponent A ComponentB
Jar file
‚ a
‚`
‚ a
‚`
…
…
Menu
Button
…
…
Image
Graph
Label
Field
Component
LibraryApplication
Builder
Component Bus
Component B
XML
XML-Component
Transmutation
( Event Handling between Components )
MZ-Platform
ComponentAComponent A ComponentB
Jar file
‚ a
‚`
‚ a
‚`
…
…
Menu
Button
…
…
Image
Graph
Label
Field
Component
LibraryApplication
Builder
Component Bus
Component B
XML
XML-Component
Transmutation
Fig. 1: Architecture of MZ-Platform
load/save components. During the execution of Application
Builder, users can alter the properties of components like
colors of the screen background, message string of dialog
and similar attributes of components. Also, the usability of
the screen layout of an application can be verified while the
software is under construction, because the components on
Application Builder are all activated.
Application Builder supports a compound component.
Several components are assembled into a line component;
namely, a hierarchical component can also be defined in the
same screen.
3.4 XML-component transmutation
Component integration information defined by Applica-
tion Builder can be stored in the XML (eXtensible Markup
Language) format file. In the XML file, comments for com-
ponent and argument explanation are also added. Fig. 3 (left)
shows an example of component assembly information and
the corresponding application.
In this example, the XML file has more than four thou-
sand statement lines. This XML file contains the program to
make the surface shown in Fig. 3 (right) and the geometry
data of four special curves to define the surface. This shows
that not only a CAx function such as “create a surface from
four bounded curves”, but also surface data in parametric
representation can be stored and shared in the XML file.
XML-Component Transmutation module can read this XML
file as a component assembly information, and pass this infor-
mation to Component Bus as if it was defined by Application
Builder.
Moreover, if an application receives a message of this
XML data, XML-Component Transmutation translates the
message and load components interactively. Using this
function, for example, the application screen layout can be
dynamically altered depending on the message outside the
application.
3.5 Remote component collaboration
Recently, it has become common that several enterprises
are involved in the design and manufacture of a new product.
To support these processes, collaboration of distributed soft-
ware is one of key features of CAx tools. MZ-Platform has
the collaboration capabilities to invoke a remote component
and send a component from one MZ-Platform to the other.
Remote component methods (or services) can be found us-
ing UDDI (Universal Description, Discovery and Integration)
protocols [5]. Messages are sent by SOAP (Simple Object
Access Protocol) format, and they can reach the other
MZ-Platform site if it is inside the firewall.
© Czech Technical University Publishing House http://ctn.cvut.cz/ap/ 49
Acta Polytechnica Vol. 44 No. 3/2004
Fig. 2: Application Builder of MZ-Platform
Fig. 3: Component Assembly information stored in XML format and the corresponding application
There are several major protocols: CORBA (Common
Object Request Broker Architecture) [6] defines RPC (Remote
Procedure Call)-like remote object invocation protocols; Java
has RMI (Remote Method Invocation) to use the service of a
remote Java object. The feature of Remote Component Col-
laboration is that users can assemble remote components in
the same way as local components in their own Component
Library. Component Bus creates an XML message if an event
for a remote component occurs. A process for remote com-
munication called Broker creates a SOAP message and sends
it to the destination Broker. During this procedure, the UDDI
server provides destination information to Broker, as shown
in Fig. 4.
4 Applications
To prove the effectiveness and usability of MZ-Platform,
we have developed an application called MZ-Checker (Fig. 5).
The main function of MZ-Checker is to verify the quality of
3-dimensional CAD data: to calculate the angles between a se-
lected axis-vector and surface normal vectors that are finely
sampled, and to display them on the screen as color-coded
surfaces for the purpose of metal-mold model checking.
We have proved that MZ-Platform is capable of developing
commercial level programs. We believe that 6 months of
development is very short compared to the same level appli-
cation development. Moreover, the easiness of adding a new
function is shown by the example, which was developed and
tested by MZ-Checker in just two days.
As a CAx tool, MZ-Checker has many features. SASIG
(Strategic Automotive product data Standards Industry
Group) has announced that CAD data of inferior quality is
recognized as a major cause of rework and cost by many
automobile industry organizations [7]. JAMA (Japan Auto-
mobile Manufacturing Association) [8] and SASIG have
published a guideline aimed at preventing inferior quality
CAD data from being created, called the PDQ (Product
Data Quality) guideline. MZ-Checker is the only tool that
has full conformity with the PDQ guideline. Furthermore,
MZ-Checker can load various types of CAD data, such as
STEP (AP203, AP214), IGES; it is also used as a viewer of CAD
data. As a part of this research project, we started distribution
of MZ-Checker for small and medium enterprises.
5 Component representation of
parametric modeling
MZ-Platform provides an environment for creating geo-
metry modeling applications as a completely event-driven
component assembly. The XML-Component Transmutation
module can store component assembly in XML format. This
shows that MZ-Platform can be regarded as a parametric
modeling framework.
History-based parametric data in the current CAD tool is a
collection of CAD operation (or command) names, argument
geometry data, input parameters to these operations, and the
assembly structure of operations [9]. History-based paramet-
ric modeling in the current commercial CAD tool has an
imperfection that its data has no warranty to be re-executable,
50 © Czech Technical University Publishing House http://ctn.cvut.cz/ap/
Acta Polytechnica Vol. 44 No. 3/2004
Broker
MZ-Platform
RMI
Registry Server
XML SOAP
SOAP
SOAP
Broker
MZ-Platform
RMI
SOAP XML
Java XML XML Java
Broker
MZ-Platform
RMI
Registry Server
(UDDI)
XML SOAP
SOAP
SOAP
Broker
MZ-Platform
RMI
SOAP XML
Java XML XML Java
Fig. 4: Architecture of remote component
Fig. 5: MZ-Checker
if there is a slight difference between the CAD tools it defined
and the CAD tool it runs. This imperfection arises from the
nature of parametric data, which is deeply involved in the
algorithm of geometric modeling or its programming codes.
That is, if the name of an operation in parametric data
is modified, it is the same as the parametric data is being
modified.
When the new CAD version is released, a part of the
program codes is modified or upgraded, and the operation
that is defined by these modified program codes will behave
differently than it used to. This is the essential problem of
parametric data, and we call this a problem of the “parametric
data not being persistent”.
As shown above, the component assembly information
written in XML format can be parametric data. If the compo-
nent is designed to be a suitable size and some tacit factors
that cause the inconsistency are controlled from outside the
component, parametric data represented in XML format
becomes persistent.
This is an ongoing research item and we will show the
results in future papers. The parametric data example we
have developed is shown Figure 6. In this example, a curve in
the model can be replaced by an arbitrary curve. In Fig. 6(a),
the 2nd of the three curves is replaced by a new curve.
Fig. 6(b) shows that the sweep angle is changed from 2 de-
grees to 10 degrees.
6 Conclusions and future work
We have developed a component-based software develop-
ment framework MZ-Platform. It enables engineers in small
and medium-size enterprises to develop programs specific
to their needs. Basic modules of MZ-Platform have been
designed and developed. There is plenty of scope for im-
provement. For example, the user-interface of Application
Builder can be simpler and more friendly to nonspecialists
in programming. As mentioned above, we will to improve
and enrich the components from now on.
Concerning the parametric modeling problem, we are
planning to design a more complicated CAD model with fillet
surfaces. It will prove that the proposed parametric data in
XML format could be a candidate for parametric data of the
next generation.
References
[1] Matsuki N.: “A National R&D Project Plan to Establish
Manufacturing Information Infrastructure in Japan”.
Proc. of ITIT Symposium on Development Manufac-
turing Technology Infrastructure, AIST, (2001), p. 6–8.
[2] Crnkovic I., Larsson M.: Building Reliable Compo-
nent-Based Software Systems. MA (USA): Attech House
2002, ISBN 1-58053-327-2.
[3] Medvidovic N., Taylor R. N.: “A Classification and Com-
parison Framework for Software Architecture Descrip-
tion Languages”. IEEE Trans. On Software Engineering,
Vol 26 (Jan. 2000), No. 1.
[4] http://www.microsoft.com/net/basics/whatisasp
[5] http://www.uddi.org
[6] http://www.omg.org
[7] http://www.sasig-pdq.org
[8] http://www.jama.or.jp
[9] Anderl R., Mendgen R.: “Parametric design and its im-
pact on solid modeling applications”. ACM Proc. 3rd
Symposium of Solid Modeling, (1995), 1.
Mr. Norio Matsuki
Dr. Hitoshi Tokunaga
Dr. Hiroyuki Sawada
Digital Manufacturing Research Center (DMRC)
National Institute of Advanced Industrial Science and
Technology (AIST)
1-2, Namiki, Tsukuba
Ibaraki, Japan
© Czech Technical University Publishing House http://ctn.cvut.cz/ap/ 51
Acta Polytechnica Vol. 44 No. 3/2004
(a) curve replacement example (b) sweep angle modification example
Fig. 6: Parametric representation of a model and result of modification