BACKGROUND OF THE INVENTION
1. Field of the Invention
[0001] The present invention relates to an information processing apparatus, method and
program, and, more particularly, to an information processing apparatus, method and
program suitable for use in writing file system metadata of plural operating systems.
2. Description of the Related Art
[0002] In recent years, a card has been disseminated which has a non-contact module capable
of communicating in a non-contact manner by including an IC (integrating circuit).
Such a card is called, for example, a "non-contact IC card" or the like, and is capable
of communicating with other devices in a non-contact manner. The non-contact IC card
is used for non-contact communication which has been adopted in, for example, transportation
tickets, electronic money, ID cards, entrance-exit systems, and the like, and use
of the non-contact IC card is widespread.
[0003] Corresponding to these various uses, such a non-contact IC card is configured to
have an OS (operating system) suitable for each use (Japanese Unexamined Patent Application
Publication No.
2007-87120 is an example of the related art).
SUMMARY OF THE INVENTION
[0004] Typically, file system metadata of an operating system in the non-contact IC card
is written using an interface specially prepared by a chip vendor in a factory manufacturing
IC cards at the time of its manufacture. The interface, prepared by the chip vendor,
for writing metadata is generally not kept secure. However, the file system metadata
includes security information such as a key value and the like in a section of it.
Therefore, an environment for writing file system metadata is preferably a place which
can maintain security.
[0005] However, there are many chip vendors who do not have their own manufacturing equipment
but entrust the manufacturing to other companies (a fabless manufacturer). As for
this fabless manufacturer, it is not easy in terms of cost and the like to find a
place which can maintain security.
[0006] It is desirable to write the file system metadata of an operating system in an IC
card using the IC card.
[0007] An information processing apparatus according to an embodiment of the present invention
includes, a transmission means for transmitting a command for a second operating system
to the second operating system when receiving the command via a communication path
which communicates under a control based on a first operating system, an extraction
means for extracting data for the second operating system by analyzing the command
transmitted from the transmission means, and a writing means for writing the data
extracted by the extraction means as data constituting file system metadata of the
second operating system.
[0008] The information processing apparatus may further include the first operating system
and the second operating system.
[0009] The information processing apparatus may constitute an IC chip, an IC card, or a
mobile phone.
[0010] The transmission means may be provided in an HAL (Hardware Abstract Layer).
[0011] An information processing method according to an embodiment of the present invention,
in an information processing apparatus having a transmission means, an extraction
means and a writing means, includes the steps of transmitting a command for a second
operating system to the second operating system when receiving the command via a communication
path which communicates under a control based on a first operating system, by the
transmission means, extracting data for the second operating system by analyzing the
transmitted command, by the extraction means, and writing the extracted data as data
constituting file system metadata of the second operating system, by the writing means.
[0012] A program enables a computer to execute a processing according to an embodiment of
the present invention, in an information processing apparatus having a transmission
means, an extraction means and a writing means, the processing including the steps
of transmitting a command of a second operating system to the second operating system
when receiving the command via a communication path which communicates under a control
based on a first operating system, by the transmission means, extracting data for
the second operating system by analyzing the transmitted command, by the extraction
means, and writing the extracted data as data constituting file system metadata of
the second operating system, by the writing means.
[0013] In an information processing apparatus, method and program according to an embodiment
of the present invention, a command for a second operating system is transmitted to
the second operating system for analysis, when the command is received via a communication
path which communicates under a control based on a first operating system, data for
the second operating system is extracted, and the extracted data is written as data
constituting file system metadata of the second operating system.
[0014] An information processing apparatus according to another embodiment of the present
invention includes a supply means for supplying a command for a second operating system
to a transmission means when receiving the command via a communication path which
communicates under a control based on a first operating system, a transmission means
for transmitting the command supplied from the supply means to the second operating
system, an extraction means for extracting data for the second operating system by
analyzing the command transmitted from the transmission means, and a writing means
for writing the data extracted by the extraction means as data constituting file system
metadata of the second operating system.
[0015] The information processing apparatus may constitute an IC chip, an IC card, or a
mobile phone.
[0016] The supply means may be provided in the first operating system.
[0017] The transmission means may be provided in an HAL (Hardware Abstract Layer).
[0018] An information processing method according to another embodiment of the present invention,
in an information processing apparatus having a supply means, a transmission means,
an extraction means and a writing means, includes the steps of supplying a command
for a second operating system to a transmission means when receiving the command via
a communication path which communicates under a control based on a first operating
system, by the supply means, transmitting the supplied command to the second operating
system, by the transmission means, extracting data for the second operating system
by analyzing the transmitted command by the extraction means, and writing the extracted
data as data constituting file system metadata of the second operating system, by
the writing means.
[0019] A program enables a computer to execute a processing according to another embodiment
of the present invention, in an information processing method of an information processing
apparatus having a supply means, a transmission means, an extraction means and a writing
means, the processing including the steps of supplying a command for a second operating
system to a transmission means when receiving the command via a communication path
which communicates under a control based on a first operating system, by the supply
means, transmitting the supplied command to the second operating system, by the transmission
means, extracting data for the second operating system by analyzing the transmitted
command by the extraction means, and writing the extracted data as data constituting
file system metadata of the second operating system, by the writing means.
[0020] In an information processing apparatus, method and program according to another embodiment
of the present invention, a command for a second operating system is transmitted to
the second operating system for analysis, when the command is received via a communication
path which communicates under a control based on a first operating system, data for
the second operating system is extracted, and the extracted data is written as data
constituting file system metadata of the second operating system.
[0021] According to an embodiment of the present invention, it is possible to write predetermined
data regarding an operating system of an IC card in the IC card. Also, the writing
can be performed while maintaining security.
BRIEF DESCRIPTION OF THE DRAWINGS
[0022]
Fig. 1 is a diagram of an information processing system according to an embodiment
of the present invention;
Fig. 2 is a flowchart illustrating an operation of the information processing system;
Fig. 3 is a diagram illustrating a configuration of another information processing
system according to an embodiment of the present invention;
Fig. 4 is a flowchart illustrating another operation of the information processing
system;
Fig. 5 is a diagram illustrating a configuration of an IC card;
Fig. 6 is a diagram illustrating a configuration of an IC card;
Fig. 7 is a diagram illustrating a configuration of an IC card;
Fig. 8 is a flowchart illustrating a processing by a command dispatcher;
Fig. 9 is a diagram illustrating a command;
Fig. 10 is a flowchart illustrating a processing by a first operating system command
analysis module;
Fig. 11 is a flowchart illustrating a processing by a metadata writing module;
Fig. 12 is a diagram illustrating metadata;
Fig. 13 is a diagram illustrating raising an event;
Fig. 14 is a diagram illustrating another configuration of the IC card;
Fig. 15 is a diagram illustrating still another configuration of the IC card;
Fig. 16 is a flowchart illustrating a processing by a first operating system command
through applet; and
Fig. 17 is a diagram illustrating a recording medium.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0023] Embodiments of the present invention will now be described with reference to the
drawings.
[Configuration of System]
[0024] Fig. 1 is a diagram illustrating a configuration of an information processing system
according to an embodiment of the present invention. An information processing system
10 shown in Fig. 1 has an event server 11, an event processing unit 12, a communication
processing unit 13, a first communication path 14, an IC card 15, and a second communication
path 16. The event server 11 includes the event processing unit 12 and the communication
processing unit 13.
[0025] The event server 11 communicates with the IC card 15 via the first communication
path 14. The IC card 15 communicates with a server (not shown) or the like via the
second communication path 16. The first and second communication paths are communication
paths used when communications are performed under controls based on different operating
systems, respectively. For example, when the IC card 15 performs communication under
a control based on a first operating system, the communication is carried out using
the first communication path 14. In addition, for example, when the IC card 15 performs
communication under a control based on a second operating system, the communication
is carried out using the second communication path 16.
[0026] The first operating system and the second operating system are different from each
other. As described later, the IC card 15 may include both the first operating system
and the second operating system, or may include the second operating system. However,
the present invention is not limited to the configuration including one or two operating
systems. In other words, the present invention is applicable to an IC card including
a plurality of operating systems.
[0027] The first operating system is, for example, a Java Card OS, or the like. The Java
Card OS as a card application can mount additional functions onto itself. In addition,
herein, the first operating system is described as, for example, the Java Card OS,
throughout the specification; however, it may be, for example, a MULTOS OS or a Native
OS of a reader as well as the Java Card OS.
[0028] The second operating system is, for example, a FeliCa OS or the like. The FeliCa
(trademark) OS is used for a card which is employed as electronic money, and the card
replaces a credit card or a prepaid card and is used in business transactions.
[0029] The FeliCa OS can write a numerical value indicating electronic money in a predefined
region afterwards and define a range of a region used as electronic money afterwards.
[0030] The event processing unit 12 of the event server 11 generates a command for the second
operating system. The generated command is supplied to the communication processing
unit 13. The communication processing unit 13 converts the supplied command into a
command which can be treated by the first operating system (a command which can be
analyzed by the first operating system). The command supplied from the event processing
unit 12 is transmitted to the IC card 15 via the first communication path 14 which
communicates under the control based on the first operating system. The communication
processing unit 13 receives data (for example, a later-described command reply) from
the IC card 15 via the first communication path 14.
[0031] A processing carried out by this system, principally, the event server 11 will be
described with reference to a flowchart in Fig. 2. In addition, a configuration or
an operation of the IC card 15 is described in detail. To begin with, an operation
of the system is further described.
[0032] At step S11, the event processing unit 12 of the event server 11 generates a command
directed to the second operating system. The generated command described later is
a command and so on, for example, including data used by the second operating system
for the event processing. The generated command is supplied to the communication processing
unit 13.
[0033] At step S12, the communication processing unit 13 converts the supplied command into
a command of the first operating system. At step S13, the communication processing
unit 13 transmits the converted command to the IC card 15 via the first communication
path 14. As above, the event server 11 converts the command of the second operating
system into the command which can be treated by the first operating system, and transmits
it to the IC card 15 via the first communication path 14 which communicates under
the control based on the first operating system.
[0034] The IC card 15 processes the received command by carrying out a processing described
later and transmits a command reply including the processing result. The transmission
is also performed using the first communication path 14. At step S14, the communication
processing unit 13 of the event server 11 receives the command reply from the IC card
15. The communication processing unit 13 extracts predetermined data from the received
command reply, and supplies the extracted data to the event processing unit 12 as
results processed by the IC card 15 alongside the processings at Steps S11 to S13.
If an error occurs in the data, a processing such as retransmission of data and the
like is executed.
[Another Configuration of the Information Processing System]
[0035] Fig. 3 is a diagram illustrating a configuration according to another embodiment
of the present invention. An information processing system 30 shown in Fig. 3 has
an event server 11, an event processing unit 12, a communication processing unit 13,
a first communication path 14, an IC card 15, a second communication path 16, and
an NFC-RW 31. The elements with the same functions as those of the information processing
system 10 shown in Fig. 1 are given the same reference numerals, and the description
thereof will be appropriately omitted.
[0036] The information processing system 30 shown in Fig. 3 has a configuration in which
the NFC-RW 31 is added to the information processing system 10 shown in Fig. 1. The
NFC-RW 31 is provided between the event server 11 and the first communication path
14. NFC stands for near field communication and RW stands for reader/writer. NFC is
a communication protocol which can handle a plurality of communication formats in
non-contact near wireless communication. According to the non-contact near wireless
communication using this NFC, for example, a reader and a writer can perform a non-contact
near wireless communication with a plurality of non-contact IC cards 15 corresponding
to communication formats different from each other.
[0037] An operation of the information processing system 30 is descried with reference to
a flowchart in Fig. 4. The processings at steps S31 and S32 are the same as those
at steps S11 and S12 in the flowchart shown in Fig. 2, wherein the command for the
second operating system is generated and is converted into the command which can be
treated by the first operating system. At step S33, the communication processing unit
13 transmits the command generated by the event processing unit 12 to the NFC-RW 31.
The communication processing unit 13 and the NFC-RW 31 are connected to each other
in a wired or a wireless manner. Also, the communication processing unit 13 and the
NFC-RW 31 may be connected to each other via a predetermined network.
[0038] At step S34, the NFC-RW 31 transmits the supplied command to the IC card 15 via the
first communication path 14. This communication is performed in a non-contact manner.
At step S35, the communication processing unit 13 receives a command reply from the
IC card 15 via the first communication path 14 and the NFC-RW 31.
[0039] As above, the event server 11 converts the data of the second operating system into
data of a format which can be treated by the first operating system, and transmits
the command to the IC card 15 via the first communication path 14 which communicates
under the control based on the first operating system. Next, the IC card 15 receiving
this command will be described.
[Configuration and Operation of the IC Card]
[0040] Fig. 5 is a diagram illustrating a configuration of the IC card 15. The IC card 15
shown in Fig. 5 has an HAL (Hardware Abstraction Layer) 101, a command dispatcher
102, a first operating system 111, an applet 112, an applet 113, a firewall 121, a
second operating system 131, a first operating system command analysis module 132,
a metadata writing module 133, a second operating system file metadata 134, a second
operating system command analysis module 135, and a second file module 136.
[0041] The HAL 101 is configured to have the command dispatcher 102. This command dispatcher
102 supplies (transmits) a command transmitted via the first communication path 14
to the first operating system 111 or the second operating system 131, by referring
to predetermined data contained in the command. Especially, the command dispatcher
102 receives a command for the second operating system 131 via the first communication
path 14 which communicates under the control based on the first operating system 111,
and transmits the received command to the second operating system 131.
[0042] The HAL 101 has a function of concealing the difference between different pieces
of hardware. For example, even when using different pieces of hardware, an operating
system can have access to each of the different pieces of hardware via the same interface.
The use of the HAL 101 with such a function enables the hardware and the HAL to be
changed without changing the mounting of the operating system, and therefore the operating
system can use the same function.
[0043] In this embodiment, the use of the HAL 101 allows the command dispatcher 102 to be
used even when an algorithm is changed in transmitting and receiving data, for example,
via the first communication path 14, and thus the data can be transmitted and received
using the same algorithm although the command dispatcher 102 is any type of interface.
That is to say, an event algorithm described below can be applied by adopting the
HAL 101, regardless of the type of command dispatcher 102.
[0044] The first operating system 111 includes the applet 112 and the applet 113. As described
above, the first operating system 111 is, for example, the Java Card OS, and the applet
112 and the applet 113 are programs run by the Java Card OS. The first operating system
111 and the second operating system 131 are configured to have no access to each other.
In order to have no access to each other, the firewall 121 is provided between the
first operating system 111 and the second operating system 131.
[0045] The second operating system 131 includes the first operating system command analysis
module 132, the metadata writing module 133, the second operating system file metadata
134, the second operating system command analysis module 135, and the second file
module 136.
[0046] The first operating system command analysis module 132 analyzes a command supplied
from the command dispatcher 102 and extracts predetermined data for the second operating
system 131 therefrom. The command supplied to the first operating system command analysis
module 132 is converted into a format which can be treated by the first operating
system 111, although it is a command for the second operating system 131. In addition,
the command supplied to the first operating system command analysis module 132 is
a command undertaking communication in a state where security is maintained, by using
a function concerning encrypted communication of the first operating system 111.
[0047] Therefore, the first operating system command analysis module 132 is included in
the second operating system 131; however, it has a function of analyzing the command
for the first operating system 111, or of decrypting the command to which the encryption
function of the first operating system 111 has been applied.
[0048] The data from the first operating system command analysis module 132 is supplied
to the metadata writing module 133. The metadata writing module 133 writes the data
from the first operating system command analysis module 132 in the second operating
system file metadata 134. In other words, as a result analyzed by the first operating
system command analysis module 132, the extracted data is data constituting the second
operating system file metadata 134. The metadata writing module 133 writes such data.
[0049] The frame of the second operating system file metadata 134 shown in Fig. 5 is marked
with dotted lines. This indicates that the second operating system file metadata 134
works only after the metadata is written in the second operating system file metadata
134 by the metadata writing module 133. In addition, the second operating system command
analysis module 135 and the second file module 136 also work only after the metadata
is written in the second operating system file metadata 134, and thus the frame thereof
is marked with dotted lines as well in Fig. 5.
[0050] The second operating system command analysis module 135 obtains and analyzes a command
for the second operating system 131 supplied via the second communication path 16.
The analysis result is supplied to the second file module 136. The second file module
136 carries out a processing based on the analysis result from the second operating
system command analysis module 135.
[0051] For example, it is possible to include additional services in the second operating
system 131, as shown in Fig. 6. The service 137 or the service 138 is added after
the metadata is written in the second operating system file metadata 134, and thereby
the second operating system file metadata 134, the second operating system command
analysis module 135 and the second file module 136 work, respectively.
[0052] If the second operating system 131 is assumed as the FeliCa (trademark) OS, which
is used as a card for use as electronic money, the card replaces a credit card or
a prepaid card and is used in business transactions. The service 137 or the service
138 is for offering a credit card service or a prepaid card service. The second file
module 136 controls the service 137 or the service 138 on the basis of the data from
the second operating system command analysis module 135.
[0053] The first operating system command analysis module 132, the metadata writing module
133, the second operating system command analysis module 135, and the second file
module 136 are stored in, for example, a read only memory such as a ROM (Read Only
Memory) or the like. The second operating system file metadata 134, the service 137
and the service 138 are stored in a nonvolatile memory, for example, an EEPROM (Erasable
Programmable ROM) or the like.
[0054] A processing for writing the second operating system file metadata 134 will be described
below. The processing for writing the second operating system file metadata 134 is
carried out by the second operating system 131, and therefore the first operating
system 111 may not be included in the IC card 15. That is to say, the IC card 15 may
have a configuration as shown in Fig. 7.
[0055] The IC card 15 shown in Fig. 7 has a configuration in which the first operating system
111 and the firewall 121 are removed from the IC card 15 shown in Fig. 5. Even this
configuration can perform the processing for writing the second operating system file
metadata 134 described below.
[0056] Next, the processing performed by the IC card 15 shown in Fig. 5 or Fig. 7 will be
described. To begin with, a processing performed by the command dispatcher 102 will
be described with reference to a flowchart in Fig. 8.
[0057] At step S101, the command dispatcher 102 receives a command via the first communication
path 14. At step S102, the command dispatcher 102 determines a transmission destination
with reference to data (identifier and so on) recorded in a predetermined region in
the received command. At step S103, the command is set to be transmitted to the second
operating system 131. This flow of the processings is carried out when the data which
has been referred to at step S102 indicates a command directed to the second operating
system 131.
[0058] Here, the received command, in this flow of the processings, that is, when the command
dispatcher 102 sets the received command to be transmitted to the second operating
system 131, will be described. The received command in this flow of the processings
is a command referred to as a Select command. The Select command is used in selecting
files, and so on.
[0059] A command 161 shown in Fig. 9 has a CLA region 171, an INS region 172, a P1 region
173, a P2 region 174, an LC region 175, a DATA region 176, and an LE region 177. An
instruction class is written in the CLA region 171, an instruction code is written
in the INS region 172, an instruction parameter 1 is written in the P1 region 173,
and an instruction parameter 2 is written in the P2 region 174. The number of bytes
of the DATA region 176 in the command 161 is written in the LC region 175, command
data is written in the DATA region 176, and the maximum number of bytes expected in
a data field of a response to the command is written in the LE region 177.
[0060] If the command 161 is the Select command, "A4", which is an identifier indicating
that this command is the Select command, is written in the INS region 172. The command
dispatcher 102 recognizes the Select command when the "A4" is written in the INS region
172 of the received command 161. Next, the DATA region 176 is referred to. In the
DATA region 176, "AID" is written. This "AID" stands for Association Identifier and
is information indicating an operating system of a destination.
[0061] For example, the AID is given as follows. AID = "A0 00 00 03 17 01 XX XX XX XX."
Here, "XX XX XX XX" indicates what is undefined.
[0062] When AID = "A0 00 00 03 17 01 XX XX XX XX," the operating system of the destination
is assumed as the second operating system 131. The command dispatcher 102 sets a destination
to the second operating system 131, at step S102, when the "A4" is written in the
INS region 172 of the received command 161 and AID = "A0 00 00 03 17 01 XX XX XX XX"
is written in the DATA region 176, and sets a command received since this time to
be transmitted to the second operating system 131. This setting is maintained until
a command reply is obtained from the first operating system command analysis module
132.
[0063] Though detailed description is omitted, when codes other than the "A4" are written
in the INS region 172 of the command 161 or data other than the AID is written in
the DATA region 176 thereof, a processing corresponding to the code or the data is
carried out.
[0064] The command dispatcher 102 receives the Select command, and thereafter there is a
possibility that it receives commands frequently. The command dispatcher 102 receives
the Select command and sets commands received since then to be transmitted to the
second operating system 131, and thereby the commands received since then are transmitted
to the second operating system 131. In a command transmitted like this, data constituting
the second operating system file metadata 134 is written in the DATA region 176 (which
will be described in detail with reference to Figs. 12 and 13), although not shown.
[0065] Referring to the flowchart in Fig. 8 again, at step S104, the command dispatcher
102 transmits the command 161 received via the first communication path 14 to the
second operating system 131. The second operating system 131 receives the command
161 from the command dispatcher 102 by the first operating system command analysis
module 132. Thereafter, a processing described later is carried out in the second
operating system 131, and a command reply indicating the processing result is output
to the command dispatcher 102 from the second operating system 131.
[0066] The command dispatcher 102 obtains the command reply at step S105. The obtained command
reply has been converted into a format which can be treated by the first operating
system 111. The command dispatcher 102, at step S106, transmits the obtained command
reply to the event server 11 via the first communication path 14. As for the command
received via the first communication path 14 at the time of obtaining the command
reply, the setting of transmission to the second operating system 131 is canceled.
[0067] As above, the command dispatcher 102 receives the command from the event server 11,
and sets the obtained command to be transmitted to the first operating system 111
or the second operating system 131 by referring to the information contained in the
command. This setting is performed by the command dispatcher 102, and thereby even
when the command of a format which is treated by the first operating system 111 is
received via the first communication path 14, the command can be transmitted to the
second operating system 131. This enables the following processing to be carried out
in the second operating system 131.
[0068] A processing carried out by the first operating system command analysis module 132
of the second operating system 131 will be described with reference to a flowchart
in Fig. 10.
[0069] At step S131, the first operating system command analysis module 132 obtains a command
from the command dispatcher 102. This processing is performed when the command dispatcher
102 performs the processing at step S104 (Fig. 8). The first operating system command
analysis module 132 analyzes the obtained command at step S132. It extracts data from
the command 161 by the use of the analysis result at step S133. The extracted data
is data to be written as the second operating system file metadata 134 and is described
later with reference to Fig. 12 or Fig. 13. The extracted data is supplied to the
metadata writing module 133.
[0070] The first operating system command analysis module 132 is included in the second
operating system 131; however it has a function of analyzing the command for the first
operating system 111 in order to extract the data for the second operating system
131. Thus, the first operating system command analysis module 132 can process the
command of the format which is supplied from the command dispatcher 102 and is treated
by the first operating system 111.
[0071] These processings such as the obtaining of the command, the extraction and transmission
of the data may be repeated several times. If data is transmitted several times, the
first operating system command analysis module 132 obtains a command reply from the
metadata writing module 133 at step S134. The first operating system command analysis
module 132 converts the received command reply into the command reply of a format
which can be treated by the first operating system 111 at step S135.
[0072] At step S136, the first operating system command analysis module 132 supplies the
command reply converted into a command reply for the first operating system 111, to
the command dispatcher 102. Corresponding to this processing, the command dispatcher
102 carries out the processing at step S105 (Fig. 8).
[0073] As above, the first operating system command analysis module 132 extracts the data
for the second operating system 131 from the command of the format which can be treated
by the first operating system 111. The first operating system command analysis module
132 also converts the data for the second operating system 131 into the command of
the format which can be treated by the first operating system 111. The first operating
system command analysis module 132 performs these processings, and thereby the second
operating system 131 can process the command of the format which can be treated by
the first operating system 111.
[0074] Subsequently, a processing by the metadata writing module 133 which receives data
supplied from the first operating system command analysis module 132 or which supplies
a command reply to the first operating system command analysis module 132 will be
described with reference to a flowchart in Fig. 11.
[0075] At step S161, the metadata writing module 133 obtains data from the first operating
system command analysis module 132. This processing is performed when the first operating
system command analysis module 132 performs the processing at step S133 (Fig. 10).
At step S162, the metadata writing module 133 writes the obtained data as the second
operating system file metadata 134. For example, the data is sequentially written
in the second operating system file metadata region 181 (Fig. 13) which has been secured
in the memory.
[0076] At step S163, it is determined whether or not the writing of the data is completed.
The metadata writing module 133 determines the writing of the data is completed when
the data is normally written as the second operating system file metadata 134 or when
an error occurs for a certain reason. At step S163, the processing returns to step
S161 until the writing of the data is determined to be completed, and thus the processing
since then is repeated so that the writing of data is continuously performed.
[0077] On the other hand, at step S163, if the writing of the data is determined to be completed,
the processing at step S164 is performed. At step S164, the metadata writing module
133 generates a command reply for output to the first operating system command analysis
module 132. At this time, when the writing is normally completed, a command reply
indicating that the writing is normally completed is generated, and when the writing
is completed due to occurrence of any errors, a command reply indicating the occurrence
of errors is generated.
[0078] The command reply output from the metadata writing module 133 is received by the
first operating system command analysis module 132 as the processing at step S134
(Fig. 10).
[0079] In this way, the second operating system file metadata 134 is written, and thereby
the IC card 15 lies in a state of beginning the processing in the second operating
system 131. As described above, the second operating system file metadata 134 is written,
and thereby the second operating system command analysis module 135 or the second
file module 136 can work. In addition, the service 137 or the service 138 is registered
so as to be available after the registration, and thereby the IC card 15 lies in a
state of offering the service.
[0080] The second operating system file metadata 134 written by this processing will be
further described. Fig. 12 is a diagram illustrating a relation between a configuration
of the second operating system file metadata 134 and service data of the service 137
(138).
[0081] The second operating system file metadata 134 includes a second operating system
identification number for identifying the second operating system 131, an authentication
key for the second operating system which is used for communicating with other devices
via the second communication path 16 (Fig. 6), and a second operating system file
size indicating a file size. In addition, the second operating system file metadata
134 includes a second operating system memory management bit map which is address
information of data constituting the second operating system file metadata 134, and
a second operating system service management table which is a table for managing,
for example, the service 137 or the service 138 (Fig. 6), which runs on the second
operating system file metadata 134.
[0082] The second operating system service management table includes a second operating
system service management record #1, a second operating system service management
record #2,..., and a second operating system service management record #n, which are
records for managing the service. These second operating system service management
records are as many as the number of services.
[0083] Each of the second operating system service management records corresponds to data
indicating an address where the service is written. When there is a possibility that
a second operating system service data #1, a second operating system service data
#2,..., and a second operating system service data #n are recorded as service data,
the second operating system service management record #1 of the second operating system
service management record is data indicating an address where the second operating
system service data #1 is written. In addition, the second operating system service
management record #2 is data indicating an address where the second operating system
service data #2 is written, and the second operating system service management record
#n is data indicating an address where the second operating system service data #n
is written.
[0084] For example, if the second operating system service data #1 is the service 137, the
second operating system service management record #1 is data indicating an address
where the service 137 is written.
[0085] The second operating system identification number, the authentication key for the
second operating system, the second operating system file size, the second operating
system memory management bit map, and the second operating system service management
table, which are included in the second operating system file metadata 134, are written
in a region (a second operating system file metadata region 181 shown in Fig. 13)
prepared as a region where the second operating system file metadata 134 is written,
due to the processings (the processings by the metadata writing module) in the flowchart
shown in Fig. 11.
[0086] In addition, at step S133 in the flowchart of Fig. 10, the data, which is extracted
from the command 161 and is transmitted to the metadata writing module 133 by the
first operating system command analysis module 132, corresponds to this data, and
the data is written in the second operating system file metadata region 181 by the
processing of the metadata writing module 133.
[0087] This will be further described with reference to Fig. 13. The IC card 15 is provided
with the second operating system file metadata region 181 where the second operating
system file metadata 134 is written and a second operating system service data region
182 where the service 137 or the service 138 is written in advance (they have been
secured as reserved regions).
[0088] The above-described processing at step S181, that is, the processing is performed
by the metadata writing module 133, and when the second operating system file metadata
134 is thus raised, the second operating system file metadata 134 is written in the
second operating system file metadata region 181. This second operating system file
metadata 134 includes the second operating system identification number, the authentication
key for the second operating system, the second operating system file size, the second
operating system memory management bit map, and the second operating system service
management table, as shown in Fig. 12.
[0089] In this way, when the second operating system file metadata 134 is raised to the
IC card 15 and the second operating system file metadata 134 is written in the second
operating system file metadata region 181, the service data lies in a state capable
of being written. In this state, the second operating system service data region 182
is still an unused region.
[0090] At step S182, when a service is raised to the IC card 15, the raised service is registered
with the IC card 15. For example, when the service 137 is raised and the second operating
system service data corresponding to the service 137 is the second operating system
service data #1, the second operating system service data #1 is written in the second
operating system service data region 182.
[0091] This writing may be performed by being supplied to the second operating system 131
via the first communication path 14 and the command dispatcher 102 in the same manner
as the writing of the second operating system file metadata 134. Alternatively, the
second operating system file metadata 134 has been already written, and the second
operating system command analysis module 135 or the second file module 136 has worked,
and thus the writing may be performed by being received via the second communication
path 16.
[0092] When the second operating system service data #1 is written (registered), the second
operating system memory management bit map and the second operating system service
management table which have been written in the second operating system file metadata
region 181 are updated, respectively, in order to correspond to the registered service.
[0093] In this way, with respect to the IC card 15 in which the file metadata is not written,
the file metadata is written therein, and it is thereby possible to put the IC card
15 in an available state. In addition, as described above, there are some steps in
the raising of the event like the event concerning the registration of the service
after the metadata is raised.
The processing regarding the raising of the metadata can be performed as described
above.
[0094] In other words, the above example shows the two events such as the raising of the
second operating system file metadata 134 and the raising of the service 137. In addition,
for example, the raising of the second operating system file metadata 134 may be performed
being divided several times, not one time. For example, the event may be performed
for each piece of data constituting the second operating system file metadata 134,
that is, the second operating system identification number is raised at a first time,
and the authentication key for the second operating system is raised at a second time.
[0095] Events other than the metadata (e.g., the service) may be also performed as described
above. In other words, it is possible to raise any piece of data for the second operating
system 131 by use of a command of a format which can be treated by the first operating
system 111.
[Another Configuration and Operation of the IC Card]
[0096] Fig. 14 is a diagram illustrating another configuration of the IC card 15. The IC
card 200 shown in Fig. 14 includes an HAL 101, a first operating system command through
API (Application Program Interface) 201, a first operating system 111, a first operating
system command through applet 202, an applet 112, an applet 113, a firewall 121, a
second operating system 131, a first operating system command analysis module 132,
a metadata writing module 133, a second operating system file metadata 134, a second
operating system command analysis module 135, and a second file module 136.
[0097] In the IC card 200 shown in Fig. 14, elements with the same function as those of
the IC card 15 shown in Fig. 5 are given the same reference numerals, and the description
thereof will be omitted. The IC card 200 shown in Fig. 14 has the first operating
system command through API 201 instead of the command dispatcher 102 of the IC card
15 shown in Fig. 5. In addition, the first operating system 111 includes the first
operating system command through applet 202.
[0098] The first operating system command through API 201 transmits a command, from the
first operating system 111 to the second operating system 131, or from the second
operating system 131 to the first operating system 111.
[0099] The first operating system command through applet 202 transmits a command received
via the first communication path 14 to the first operating system command through
API 201, or transmits a command from the first operating system command through API
201 to other elements via the first communication path 14. Principally, when receiving
a command of the second operating system 131 via the first communication path 14 which
communicates under the control based on the first operating system 111, the first
operating system command through applet 202 supplies the received command to the first
operating system command through API 201.
[0100] Also, in the IC card 200 shown in Fig. 14 in the same manner as the IC card 15 shown
in Fig. 5, when the second operating system file metadata 134 is written, the second
operating system command analysis module 135 or the second file module 136 lies in
a state of working. Thereafter, for example, it is possible to add the service 137
or the service 138 to the second operating system 131, as shown in Fig. 15.
[0101] Next, a processing by the first operating system command through applet 202 will
be described with reference to Fig. 16.
[0102] At step S201, the first operating system command through applet 202 receives a command
via the first communication path 14. The command received at this time is the command
161 shown in Fig. 9. At step S202, data recorded in a predetermined region in the
received command is referred to so as to set a transmission destination. At step S203,
the command is set to be transmitted to the first operating system command through
API 201. This flow of the processings is made when the data which has been referred
to at step S202 indicates a command directed to the second operating system 131.
[0103] At step S204, the first operating system command through applet 202 transmits the
command 161 received via the first communication path 14 to the first operating system
command through API 201. The first operating system command through API 201 transmits
the transmitted command 161 to the second operating system 131. The command 161 is
received by the first operating system command analysis module 132 of the second operating
system 131. Thereafter, data is written as the second operating system file metadata
134 by the second operating system 131. A command reply indicating the writing result
is output to the first operating system command through applet 202 via the first operating
system command through API 201.
[0104] The first operating system command through applet 202 obtains the command reply at
step S205. The obtained command reply is converted into a command of a format which
can be treated by the first operating system 111 so as to be transmitted via the first
communication path 14. Therefore, at step S206, the first operating system command
through applet 202 transmits the obtained command reply to the issue server 11 via
the first communication path 14.
[0105] As above, the first operating system command through applet 202 sets the command
from the issue server 11 to be transmitted to the first operating system 111 or first
operating system command through API 201 by referring to the information in the command.
This setting is performed by the first operating system command through applet 202,
and thereby even when the command of a format which is treated by the first operating
system 111 is received via the first communication path 14, the command can be transmitted
to the first operating system command through API 201. This enables the following
processing to be carried out in the first operating system command through API 201
or the second operating system 131.
[0106] When the command is transmitted from the first operating system command through applet
202, the first operating system command through API 201 retransmits the transmitted
command to the second operating system 131. In addition, when the command is transmitted
from the second operating system 131, the first operating system command through API
201 retransmits the transmitted command to the first operating system 111.
[0107] The first operating system command analysis module 132 performs a processing based
on the flowchart shown in Fig. 10. In other words, the processing is performed in
the same manner as one by the first operating system command analysis module 132 of
the above-described IC card 15. The description thereof has been already made and
thus will be omitted.
[0108] The metadata writing module 133 performs a processing based on the flowchart shown
in Fig. 11. In other words, the processing is performed in the same manner as one
by the metadata writing module 133 of the above-described IC card 15. The description
thereof has been already made and thus will be omitted.
[0109] In this way, the second operating system file metadata 134 is written, and thereby
the IC card 200 lies in a state of beginning the processing in the second operating
system 131. As described above, the second operating system file metadata 134 is written,
and thereby the second operating system command analysis module 135 or the second
file module 136 can work. In addition, the service 137 or the service 138 is registered
so as to be available after the registration, and thereby the IC card 200 lies in
a state of offering the service.
[0110] In this way, with respect to the IC card 200 in which the file metadata is not written,
the file metadata is written therein, and it is thereby possible to put the IC card
in an available state.
[0111] As above, with respect to the IC card 15 or the IC card 200 in which the file metadata
is not written, the file metadata is written therein, and it is thereby possible to
write the file metadata therein while maintaining security. Thus, a place maintaining
security may be not secured in a factory in order to write the file metadata, and
thereby it is possible to reduce the cost involved in the place maintaining security.
[0112] Although the IC card 15 or the IC card 200 has been exemplified in the above embodiments,
an IC chip, an IC card, or a mobile phone is also possible if they have the function
of the IC card 15 or the IC card 200.
[Recording Medium]
[0113] The series of the processings described above may be executed by hardware or software.
When the series of the processings is executed by software, a program constituting
the software is installed in a computer. Here, the computer may be a computer including
dedicated hardware, or, for example, a general personal computer which can execute
various functions by installing various programs.
[0114] Fig. 17 is a block diagram illustrating a configuration example of computer hardware
which can execute the above-described series of the processings by programs.
[0115] In the computer, a CPU (Central Processing Unit) 301, an ROM (Read Only Memory) 302,
and an RAM (Random Access Memory) 303 are connected to each other via a bus 304. An
input/output interface 305 is further connected to the bus 304. To the input/output
interface 305, an input unit 306, an output unit 307, a storage unit 308, a communication
unit 309, and a drive 310 are connected.
[0116] The input unit 306 includes a keyboard, a mouse, a microphone and so on. The output
unit 307 includes a display, a speaker and so on. The storage unit 308 includes a
hard disc, non-contact IC card-volatile memory or the like. The communication unit
309 includes a network interface and so on. The drive 310 drives removable medium
311 such as a magnetic disc, an optical disc, a magneto-optical disc, or a semiconductor
memory or the like.
[0117] In the computer having the configuration described above, the CPU 301 loads, for
example, programs stored in the storage unit 308 into the RAM 303 via the input/output
interface 305 and the bus 304, for execution, to thereby perform the above-described
series of the processings.
[0118] The programs executed by the computer (CPU 301) can be offered by being recorded
in the removable media 311 as package media or the like. In addition, the programs
may be offered via a wire or wireless transmission medium such as a local area network,
the Internet, or digital satellite broadcasting.
[0119] In the computer, the programs may be installed in the storage unit 308 via the input/output
interface 305 by mounting the removable media 311 in the drive 310. In addition, the
programs may be received by the communication unit 309 via a wire or wireless transmission
medium and then installed in the storage unit 308. The programs may be installed in
the ROM 302 or the storage unit 308 in advance.
[0120] The program executed by the computer may be a program performing the processings
in a time series according to the order described in this specification, or a program
performing the processings in parallel or at a timing on being called and the like.
[0121] In this specification, the system means the whole apparatus constituted by a plurality
of apparatuses.
[0122] The present application contains subject matter related to that disclosed in Japanese
Priority Patent Application
JP 2009-097581 filed in the Japan Patent Office on April 14, 2009, and Japanese Priority Patent
Application
JP 2010-027460 filed in the Japan Patent Office on February 10, 2010, the entire contents of which
are hereby incorporated by reference.
[0123] It should be understood by those skilled in the art that various modifications, combinations,
sub-combinations and alterations may occur depending on design requirements and other
factors insofar as they are within the scope of the appended claims or the equivalents
thereof.