20.11.2014 Views

Capacity Planning of SOA-Based Systems - Service Technology ...

Capacity Planning of SOA-Based Systems - Service Technology ...

Capacity Planning of SOA-Based Systems - Service Technology ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

by Masykur Marhendra, <strong>SOA</strong> Solution Architect at XL Axiata<br />

SERVICE TECHNOLOGY MAGAZINE • Issue LIV • September 2011<br />

Abstract - <strong>Service</strong>-oriented architecture in the telecommunication industry is the first but huge step for<br />

answering many challenges from management to fulfilling product timeline from marketing request. To be able<br />

to implement service-oriented architecture, we need to define at least what technology we will use, design <strong>of</strong><br />

the system architecture, implementation strategy, and the roadmap itself. Last <strong>of</strong> all is how we manage this<br />

established service-oriented system; monitoring services performance, lifecycle <strong>of</strong> services, risk management,<br />

and so on. To maintain service’s performance at its best, we need to have good services capacity planning<br />

in terms <strong>of</strong> high availability, throughput <strong>of</strong> the services, resources consumption. On this journey, services will<br />

also evolve and expand. At this point, we also need to have good capacity planning <strong>of</strong> the platform, including<br />

Enterprise <strong>Service</strong>s Bus, Messaging Bus, and other supporting platform like database.<br />

Introduction<br />

Nowadays, the telecommunication industry has very tight competition on delivering the best quality <strong>of</strong> services<br />

on short message, data, and subscription service to those services. <strong>Service</strong>-oriented architecture is the first<br />

but huge step for answering this challenge to fulfill the high demand <strong>of</strong> the subscriber. To be able to implement<br />

service-oriented architecture, there are a few things that we need to do. We need to define the technology we<br />

will use, determine the design <strong>of</strong> the system architecture, and plan the implementation strategy. Choosing the<br />

best fit technology is the first critical point to do. We need to have a set <strong>of</strong> criteria for evaluating the capability <strong>of</strong><br />

the technology itself which can satisfy our requirements. In the telecommunication domain, 5-9 high availability<br />

is mandatory. Afterwards, we can then design the system architecture to fit our needs.<br />

The last steps we need are on how we manage well-established <strong>SOA</strong> based system. Managing the<br />

service-oriented system includes managing service availability, service performance, service lifecycle, risk<br />

management, and so on. This step is important to keep the system stable. It must mitigate all the risks that<br />

may occur in the future. As the number <strong>of</strong> subscribers keep growing every day, more transaction are loaded to<br />

the system. This enables telecommunication providers to keep delivery services in its best performance with<br />

high-availability feature. To maintain service’s performance at its best, we need to keep evaluating the service<br />

capacity in terms <strong>of</strong> high availability, throughput, and resources consumption. Moreover, when services evolve<br />

and expand, we also need to define the platform capacity itself including Enterprise <strong>Service</strong> Bus, Messaging<br />

Bus, and other supporting platform like database.<br />

<strong>Capacity</strong> planning <strong>of</strong> <strong>SOA</strong>-based system is a mandatory step to keep the system running on its best. It involves<br />

two main activities which are capacity planning <strong>of</strong> the services, and capacity planning <strong>of</strong> the platform. <strong>Service</strong>s<br />

capacity planning is more on services sizing in horizontal view to be able to handle increasing incoming<br />

transaction requests with allocated system resources. Platform capacity planning is more about sizing <strong>of</strong><br />

the platform capabilities to give system resources to all running services, including Enterprise <strong>Service</strong> Bus,<br />

Messaging Bus, and other supporting platform like database. In this article, writers will discuss about these two<br />

activities.<br />

<strong>Capacity</strong> <strong>Planning</strong> on <strong>Service</strong>s Level<br />

<strong>Service</strong>s Instance Sizing<br />

As like another applications, <strong>SOA</strong>-based services also runs into several instances. Each instance can hold the<br />

same capability and capacity. To be able to handle required incoming requests, we need to define how many<br />

service instance we will run. First, we need to know how much traffic can be handled by one service instance.<br />

Copyright © Arcitura Education Inc. 1 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

Measuring can be done through benchmarking and performance test in environment that most resemble like<br />

production one.<br />

For example, let us measure a service for purchasing Blackberry package registration products from the UMB<br />

channel, and we will refer to this as service-X. Forecasted loads will be at 300 transactions per second (tps)<br />

with service level agreement not more than 25 seconds. To do the benchmarking, we can give load test stepby-step<br />

from 100 tps until y-tps where the services performance starts to degrade. As a sample, we have the<br />

below performance test results:<br />

NO<br />

# Load<br />

(tps)<br />

Response<br />

Time (ms)<br />

& Increase Form<br />

1 2 3 4<br />

1 100 1200<br />

2 150 1250 4.17%<br />

3 200 2300 91.67% 84.00%<br />

4 250 3210 167.50% 156.80% 39.57%<br />

5 300 4000 233.33% 220.00% 73.91% 24.61%<br />

Table 1 – <strong>Service</strong>-X Performance Test Result<br />

We can see that most response time is gained at 100 tps, which is our baseline. Performance starts to degrade<br />

slightly when we give 200 tps loads to the service. Running service at 150 tps with 2 instances to handle 300<br />

tps load can process faster than running 300 tps with 1 instance. On row no. 2, 1 transactions per second will<br />

takes 8,33 ms to finished. For 300 transactions per second, it will needs only around 2500 ms. If we compare<br />

with 300 tps with 1 instances it will need 4000 ms to complete. Within 4000 ms two instances <strong>of</strong> service at 150<br />

tps can complete around 480 tps.<br />

From this analysis, we can conclude that service-X can handle at most 150 transactions per second. And<br />

running two service instances at 150 tps will give better results than running one instances at 300 tps.<br />

<strong>Service</strong>s Resources Sizing<br />

Another sizing that we need to do at services level is the system resources. System resources sizing is more<br />

about the processing unit and memory usage needed by a single service instance to run at certain transaction<br />

load level. <strong>Planning</strong> services resources size will then correlated with the platform capacity sizing. There are two<br />

main aspects we need to plan:<br />

1. Processing Unit - is defined by how many cores are needed by a single instance to run a certain<br />

transaction load. This is one <strong>of</strong> the most important aspects we need to calculate because service<br />

availability depends a lot on the availability <strong>of</strong> the processing unit; we cannot run more services if there is<br />

no processing unit available. We also need to put it when we try to design a Disaster Recovery Site for the<br />

<strong>SOA</strong>.<br />

To know how many instances we need, processing unit usage can be found out through benchmark and<br />

performance test on the environment that most resemble the production environment. For example, we<br />

Copyright © Arcitura Education Inc. 2 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

have a performance test result <strong>of</strong> service-X as given in table 2 below for processing unit usage and we are<br />

using 150 tps with 2 instances as we concluded from previous example.<br />

NO<br />

# Load<br />

(tps)<br />

Response<br />

Time (ms)<br />

& Increase Form<br />

1 2 3 4<br />

1 100 1200<br />

2 150 1250 4.17%<br />

3 200 2300 91.67% 84.00%<br />

4 250 3210 167.50% 156.80% 39.57%<br />

5 300 4000 233.33% 220.00% 73.91% 24.61%<br />

Table 2 – <strong>Service</strong>-X Processing Unit Usage<br />

In this the production environment, when the service runs and reaches 150 tps on load, it will give 2.75%<br />

extra for each instance on the platform processing unit. For example, the current condition <strong>of</strong> our platform<br />

still uses only 40% <strong>of</strong> the processing unit (on peak period). So it still safe to run two instances <strong>of</strong> service-X<br />

on the platform.<br />

This baseline data can also be useful when we need to do projection planning. Projection planning is<br />

important in making management decisions in regards to the expansion <strong>of</strong> the platform, both horizontally<br />

and vertically. This way they can overcome future events (like Idoel Fitri, Christmas Eve, New Year, etc.).<br />

2. Memory - is used by the services to store data when transactions run, and more is released when the<br />

transaction is finished. In some cases memory leakage can also happen. Whenever memory leakage<br />

happens, a service cannot release all the memory resources back to the platform. This is because <strong>of</strong> the<br />

quality <strong>of</strong> service implementation code on object management. So, whenever we want to put a service in<br />

production we need to make sure that all the services are free from memory leakage problem. This way it<br />

will not disturb our production runtime environment.<br />

Unlike the processing unit, to determine how much memory is needed by the services, we will need to<br />

do an estimation from the services activity process itself. For example, figure 1 describes the five main<br />

activities service-X contains.<br />

Copyright © Arcitura Education Inc. 3 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

Figure 1 – <strong>Service</strong>-X Activity<br />

In the first activity, the service is translating the msisdn and keyword as incoming request parameter into the<br />

internal data structure. This internal data structure is called Request Payload. Request Payload consists <strong>of</strong> two<br />

main parts. They are:<br />

1. Header - a payload that defines the properties <strong>of</strong> every single message request. This part contains several<br />

elements like RequestID, EndSystem, TimestampIn, TimestampOut, Channel, UUID, ESBUUID, and more.<br />

Header part will be carried until the end <strong>of</strong> activity.<br />

2. Body - the main payload <strong>of</strong> the request. The Body part varies on each service, and depends on the specific<br />

internal data structure implementation. For example, in service-X the body payload consist <strong>of</strong> msisdn,<br />

keyword, subscriberNo, and soccd element in the body part.<br />

Figure 2 – <strong>Service</strong>-X Body Part<br />

Copyright © Arcitura Education Inc. 4 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

For example, the maximum header parts will contain 2,048 bytes, and body payload will contain 327 bytes. So,<br />

we will have 2,375 bytes overhead.<br />

In the next activity, service-X will load subscriber pr<strong>of</strong>ile (subscriber number and soccd) from database based<br />

on msisdn. Subscriber number and soccd will then be mapped with the request payload body. For example<br />

subscriber number will have 32 bytes at maximum and soccd will have 16 bytes at maximum. Second actvitiy<br />

will give additional 48 bytes on memory usage.<br />

In third activity, service-X will register the subcriber number to the corresponding package based on the soccd<br />

and keyword being input. Return value <strong>of</strong> this activity is only a boolean values, which takes 1 byte <strong>of</strong> data. So,<br />

in this activity will give additional 1 byte on memory usage.<br />

Unlike in the previous activities, the value <strong>of</strong> the fourth activity varies based on the package that the subcriber<br />

has been registered to. But we can take the maximum value <strong>of</strong> it into take account. For example, to have a<br />

good response message (which is defined by marketing team) we need 256 bytes. We can use this number as<br />

a guideline. In the last activity, the response message will only be sent out through defined channels (UMB or<br />

SMS).<br />

If we sum all <strong>of</strong> the activities above, we will have the following estimation:<br />

# Activity Header Body Extra Payload Total<br />

1 2048 327 24 2399<br />

2 2048 327 48 2423<br />

3 2048 327 1 2376<br />

4 2048 327 256 2631<br />

5 2048 327 0 2375<br />

Total 329 12204<br />

Table 3 – Memory Usage Estimation for <strong>Service</strong>-X<br />

For single transaction service-X will at least need 12204 bytes <strong>of</strong> memory. As mentioned in the previous<br />

example, if service-X will run at 150 tps per service instance, it will need at least 1,830,600 bytes <strong>of</strong> memory<br />

(around 1,74 MB).<br />

<strong>Capacity</strong> <strong>Planning</strong> on Infrastructure Level<br />

Platform is a system where applications run. However, not all applications can run in multi-platforms. So<br />

because the platform is the base foundation system in order for applications to run, we need to make sure<br />

it has the availability and scalability to keep the growth <strong>of</strong> the application. Some important aspects <strong>of</strong> the<br />

platform capacity are the processing unit, memory, and storage. In <strong>SOA</strong>-based system, there are Enterprise<br />

<strong>Service</strong> Bus system, Messaging Bus system, and Database system (optional) that need to have good capacity<br />

planning in terms <strong>of</strong> platform capacity aspects.<br />

Copyright © Arcitura Education Inc. 5 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

Enterprise <strong>Service</strong>s Bus <strong>Capacity</strong> <strong>Planning</strong><br />

The Enterprise <strong>Service</strong> Bus is a system where collections <strong>of</strong> services are running to do mediation, routing,<br />

transformation, and orchestration to process incoming request into desired results. From the previous chapter,<br />

we already know what the requirements <strong>of</strong> a service can be ran on. Afterwards, we sum up together those<br />

requirements and they become requirements for Enterprise <strong>Service</strong> Bus capacity planning.<br />

In telecommunication domain, 5-9 high availability is a mandatory attributes. Enterprise <strong>Service</strong> Bus (ESB)<br />

should able to serve all requests 24 hours a day. To keep availability <strong>of</strong> the ESB, we should have a good<br />

capacity planning and high availability strategy for it:<br />

1. Processing unit on one ESB should not exceed a number <strong>of</strong> threshold depends on policy we use.<br />

2. Memory unit <strong>of</strong> ESB should have adequate free paging space to serve services that needs more memory<br />

allocation.<br />

3. Network bandwidth should be big enough to distribute certain transaction loads packet to the <strong>SOA</strong> system<br />

(ESB, Messaging Bus, Database, <strong>Service</strong> Providers, etc).<br />

4. High availability strategy must be able to support sustainability <strong>of</strong> the ESB system in order to serve the<br />

request.<br />

For example, our system consists <strong>of</strong> four ESBs. The threshold <strong>of</strong> the processing unit on each ESB depends on<br />

the policy we use:<br />

1. One-to-one pair - means that one ESB will be a fault tolerant system for one primary ESB. In this policy,<br />

processing unit <strong>of</strong> primary ESB can be 100% capacity since the secondary ESB can only hold a single<br />

primary ESB capacity. But this approach it very expensive, so we must have a backup for every single<br />

primary ESB.<br />

Figure 3 – One-to-One Pair<br />

2. N+1 - means that there is one ESB that is becoming the secondary ESB for all primary ESBs. If there is<br />

one ESB fails, then it should fall over to the secondary ESB. In this policy, the processing unit <strong>of</strong> primary<br />

ESB should not exceed 100/N % capacity, since the secondary ESB has to hold N-primary ESB capacity.<br />

Copyright © Arcitura Education Inc. 6 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

Figure 4 – N+1 Policy<br />

Unlike the processing unit, the memory <strong>of</strong> the ESB is much more straightforward. We just need to have<br />

available paging space for services to allocate memory. For example, we have 64 GB <strong>of</strong> memory and in<br />

average our services in one primary ESB need 128 MB to runs at 150 tps. Our single primary ESB can serve<br />

until 512 services runs at 150 tps. But, we should also put a threshold for memory, not utilizing it until 100%.<br />

For example, if it was 60% memory utilized, we should put another memory unit on ESB.<br />

Messaging Bus <strong>Capacity</strong> <strong>Planning</strong><br />

Just like the Enterprise <strong>Service</strong> Bus, capacity planning on the Messaging Bus will also include processing unit,<br />

memory, and high availability features. This creates high availability features that are more or less the same<br />

as the Enterprise <strong>Service</strong> Bus. However, the Messaging Bus’ memory unit is not as straightforward as the<br />

ESB memory unit. There are additional aspects we also need to consider, such as storage size which is for<br />

persisting messages.<br />

<strong>Capacity</strong> planning <strong>of</strong> memory on the Messaging Bus correlates with the message throughput (input and<br />

output). It will use memory to retrieve messages from the service producer and send it to the service consumer<br />

to keep the performance. For example, in our previous chapter, a message will have 12,204 bytes size. If<br />

a service producer can create the message up to the 150 tps rate, we will need at least around 1.74 MB <strong>of</strong><br />

memory to holds the message for sending/receiving activity. Sometimes there is a condition where service<br />

consumer is not available (i.e. periodic maintenance, restarting instances). In this case, all messages that are<br />

produced by the service producer should not be send instantly, hence keeping it into persistent until service<br />

consumer become available again. With this mechanism, we will not lose any messages/transactions. The<br />

persistent size unit depends on how long the services consumer is usually unavailable, and also depends on<br />

the message rate itself. For example, service consumer in the worst case is not available for 3 hours, while the<br />

transaction loads are at 150 tps. So we will need to have 18,792 MB <strong>of</strong> persistent unit (storage).<br />

Copyright © Arcitura Education Inc. 7 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

Message Size: 1,74 MB<br />

# Hours # Load (tps)<br />

# Persistent Size<br />

(MB)<br />

2 150 1,879,200<br />

3 150 2,818,800<br />

4 150 3,758,400<br />

5 150 4,698,000<br />

6 150 15,637,600<br />

Table 4 – Persistent Unit Size Needed<br />

Database <strong>Capacity</strong> <strong>Planning</strong><br />

The Database is usually used to keep business logs, application configuration, and transaction checkpoint.<br />

Business logs are kept for the purpose <strong>of</strong> tracing transaction or troubleshooting <strong>of</strong> the production runtime<br />

environment. Application configuration refers to all the configurations that are used by the application when<br />

starting/setting up their runtime environment. And the transaction checkpoint is used by specific application to<br />

maintain the transaction state whenever the transaction is failing.<br />

<strong>Capacity</strong> planning <strong>of</strong> database is slightly different with the other two components, beside the processing unit<br />

and high availability feature. In the enterprise level, the database usually keeps the data on persistent storage<br />

that installed separately with it. Some key aspects when defining storage capacity are:<br />

1. Traffic distribution - this is where traffic pattern is applied on runtime production. We can divide it into two<br />

segments:<br />

a. Non busy hours, will have 12 hours (5%) and 4 hours (10%) distribution pattern<br />

b. Busy hours, will have 4 hours (50%) at morning, 2 hours (80%) at noon, and 2 hours (100%) at night<br />

distribution pattern.<br />

2. Record size <strong>of</strong> a transaction - this is the value needed when we store one business logs in the database<br />

system, including:<br />

a. Database overhead, used to define overhead value for clob, lob, or other byte data.<br />

b. Redo log<br />

c. Archive log<br />

d. Index<br />

3. Data retention - defines how long we need to keep our business logs in persistent storage.<br />

Copyright © Arcitura Education Inc. 8 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

Figure 5 – Database Storage Architecture Using SAN<br />

For example, we have requirement to keep business logs for 45 days for 150 tps loads. And one log record<br />

contains at maximum 15.5 KB <strong>of</strong> data. We can do capacity estimation for the storage that we need by using<br />

following formulation:<br />

Number <strong>of</strong> TPS 150<br />

Data Retention 45<br />

Estimated Peak TPS<br />

12 Hours<br />

Traffic 5%<br />

4 Hours<br />

Traffic 10%<br />

4 Hours<br />

Traffic 50%<br />

5% <br />

x 150<br />

x 3.600<br />

x 12<br />

= 324.000<br />

10% <br />

x 150<br />

x 3.600<br />

x 4<br />

= 216.00<br />

50% <br />

x 150<br />

x 3.600<br />

x 4<br />

= 1.080.000<br />

Copyright © Arcitura Education Inc. 9 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

2 Hours<br />

Traffic 80%<br />

2 Hours<br />

Peak Traffic<br />

80% <br />

x 150<br />

x 3.600<br />

x 2<br />

= 864.000<br />

100% <br />

x 150<br />

x 3.600<br />

x 2<br />

= 1.080.000<br />

Traffic 5% for 12 hours 324.000<br />

Traffic 10% for 4 hours + 216.000<br />

Traffic 50% for 4 hours + 1.080.000<br />

Traffic 80% for 2hours + 864.000<br />

Traffic 100% for 2 hours + 1.080.000<br />

Estimate Total Daily Traffic 3.564.000<br />

Log Size per record (KB) 15,5<br />

Size (KB) 324.000<br />

DB Overhead 3<br />

Total Size (KB) 165.726.000<br />

1.048.576<br />

Total Size Daily (GB) 158<br />

Data Retention 45<br />

Grand Total (GB) 7.112<br />

Table 5 – Storage <strong>Capacity</strong> Formulation<br />

Copyright © Arcitura Education Inc. 10 www.servicetechmag.com


<strong>SOA</strong> in the Telco Domain<br />

Part II: <strong>Capacity</strong> <strong>Planning</strong> <strong>of</strong> <strong>SOA</strong>-<strong>Based</strong> <strong>Systems</strong><br />

<strong>Service</strong> <strong>Technology</strong> Magazine (Issue LIV , September 2011)<br />

Conclusion<br />

Database system/storage is not a mandatory component in <strong>SOA</strong>-based system, but it is very helpful for us to<br />

see what is happening in our production environment. Most <strong>of</strong> it is for providing data to management in regards<br />

to how much revenue is being produces by <strong>SOA</strong>-based system. By knowing this, they can make decisions on<br />

whether it is worthy to put the service into a <strong>SOA</strong>-based system, considering all cost benefit.<br />

About the Author: Masykur Marhendra<br />

Masykur Marhendra Sukmanegara graduated from Bandung Institute <strong>of</strong> <strong>Technology</strong>. He<br />

took Informatics Engineering with summa cumlaude predicate and placed first on Global<br />

Warming Solution <strong>Technology</strong> from Environmental Ministerial Department. Starting his career<br />

as a junior telecommunication developer on Switchlab, he implemented MSC encoding/<br />

decoding modules based on 3GPP standard specifications. After the project was done, he<br />

then took part <strong>of</strong> Javan IT <strong>Service</strong>s consultancy as a J2EE Engineer working on various<br />

Web applications and mobile application implementing in various industries. His career as a<br />

J2EE Engineer then continued in XL Axiata, a 2nd telecommunication provider in Indonesia,<br />

working on south and north application, integrating various telecommunication sub systems<br />

with Java technology such as IBM Netcool, SMSC, SMS Gateway, and others. In 2010, he<br />

was appointed to handle first <strong>SOA</strong> implementation in XL Axiata for Billing domain as a pilot<br />

project. Designing and architecting a <strong>SOA</strong> platform, delivering the service-oriented porting<br />

development from satellite applications, ensuring the service-oriented principles were being<br />

followed, maintaining <strong>SOA</strong> capacity, putting the baseline for next architecture, development,<br />

and monitoring the process.<br />

http://www.servicetechmag.com/contributors/masykurmarhendra<br />

Copyright © Arcitura Education Inc. 11 www.servicetechmag.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!