Latest Entries »

Menjadi programmer bukanlah pilihan yang menjanjikan, suer!!!, anda ingin merasakan kehidupan jadi seorang programmer? jika anda suka nonton jason bourne itulah programmer, di kejar kejar oleh waktu, bos, client dan orang orang yang selalu “ingin membunuh anda”, penuh dengan bertanya ” sudah selesaikah programnya?” sampai mana? kapan program selesai ? dstnya, namun biar lebih jelas mengapa sebaiknya andda tidak jadi programmer sekalipun anda mahasiswa jurusan IT dengan IP 4.0, sangat tidak disarankan jadi programmer, tulisan ini saya tulis untuk anak anak IT yang mau lulus atau sedang menyelesaikan Tugas akhir, skripsi Kerja praktek atau apaun, setelah lulus jangan berpikir jadi programmer, sebaiknya anda lebih memikirkan masa depan yang lebih baik, misal jadi PNS, Pegawai kantor, atau menjadi istri milyader jika anda perempuan atau yang lebih keren dan ngetrend sebaiknya anda menjadi hacker, punya reputasi, terkenal hebat, keren dan canggih walaupun sebenarnya anda ga sehebat itu. ingat pencitraan itu lebih penting dari kemampuan. nih daftar alasan mengapa sebaiknya anda tidak jadi programmer!

1. terus menerus belajar

Jika anda jadi programmer , anda harus lebih lebih hebat dari superman. Pekerjaan superman aslinya cuma wartawan, dan kemampuan supernya sudah ada secara default dari lahir, sedangkan jika anda jadi programmer, anda harus mendapatkan “kekuatan super” anda sedikit demi sedikit, dan jangan dikira anda hanya balajar bahasa pemrograman saja itu cukup, anda harus belajar apapun yang diminta client, misalnya anda membuat program untuk bank, anda harus belajar perbankan, penjualan, anda harus berpikir sebagai penjual, membuat program perhitungan nuklir, anda harus paham rumus nuklir, apapun yang diminta oleh client atau bos anda, artinya anda siap jadi apa saja. sebagai contoh real anda adalah programmer web dengan php, dulu anda cukup bisa php mysql, sekarang itu saja ga cukup, anda harus menguasai ajax, Jquery, json, xml, web API,framework, cloud dan segudang istilah teknis yang keluar hampir tiap hari!, muntah deh pokoknya!

2. berpikir 24 jam nonstop

Anda pikir programmer (terutama programmer yang kerja di kantor) hanya berpikir selama 8 jam sehari? tidak, apalagi programmer freelance, Programer berpikir 24 jam nonstop, saat makan, saat di Wc bahkan saat sholat anda masih memikirkan program yang tadi ga jalan, dan “BINGO” setan memberi tahu kesalahan atau solusi persis saat anda berusaha khusuk dalam sholat. Kalau sudah akut, bahkan mimpi anda juga berisi code program yang anda begitu senangnya bahwa program selesai dibuat tapi saat bangun, weeeh…programnya masih error!

3. Menjadi Budak !

Anda harus siap jadi budak bos anda, atau client anda, bayangkan anda jadi programmer dan bos anda didatangi client untuk membuat program ” sederhana” .programnya sederhana memang , cukup membuat program android satu tombol yang jika di klik tombolnya maka BOM Nuklir di Iran akan meluncur ke negara yahudi, gampang kan cuman 1 tombol. Tentunya bos anda akan senang hati menerima proyek gampang tersebut dengan nilai duit yang besar, semantara anda hanya bisa membenturkan kepala anda berkali kali ke tembok. ingat, cuman satu tombol, gampang koK!

4. Berasa jadi Buronan tiap hari

Jason bourne, itulah gambaran yang tepat untuk programmer, hampir tiap 5 menit sms datang tanya” dah selesai mas programnya”, webnya dah jadi belum mas, kemarin revisinya gimana mas, mas cuman revisi dikit kok lama ya, terror terus berdatangan bahkan saat anda tidur, itu kalau anda freelance, tapi kalo anda programmer kantoran itu juga ga jauh beda, cuman yang bertanya bos yang tiba tiba muncul dibelakang anda dan bertanya:” Sampaimana proggressnya?” Banyak mahasiswa stres dan pusing setengah mati ketika deadline pengumpulan naskah dan programnya belum selesai padahal kurang dari 1 minggu lagi, programmer hampir tiap hari di deadline, kata teman saya,berasa pendadaran tiap hari, dan jika anda gagal saat deadline, anda dipecat, tidak dibayar atau client membatalkan perjanjian, mereka menganggap pekerjaan programmer tuh gampang, tinggal ketik, copy paste code, terus jalan, apa susahnya eh… ,!

5. Bayarannya dikit

jangan mimpi kalau programmer di indonesia hidup makmur, tinggal buat program , duit mengalir, jutaan atau puluhan juta, ingat itu cuman di dunia mimpi, kenyataan dilapangan, programmer indonesia cuman mendapat gaji kurang dari 10% dari teman temannya di amerika sono, Programmer itu diperas habis habisan otaknya namun dibayar seperti buruh bangunan, makanya banyakan programmer itu kurus, jarang mandi, mata belo dan kamar brantakan karena kerja dari bangun tidur sampai mau tidur lagi!

6. Susah dapat cewek

Berbeda dengan pemain bola atau HACKERSSS, yang selalu di gandrungi cewek cewek, dengan penampilan dekil dan jarang mandi serta mata belo, jarang yang suka ma programmer, ingat , secara programmer itu hidup sendiri dengan teman setia komputer, makanya jarang bergaul dengan manusia, saat programmer mulai menghidupkan komputer, itulah saatnya dia Masuk “real life” sedangkan saat bersosial itu hal yang sulit, programmer kurang pintar dari sisi sosial jadi inget, anda lebih baik menjadi olahragawan yang memperbesar otot anda karena secara default dari jaman purba sampai besok kiamat keknya cewek dah disetting suka dengan laki laki yang bebadan tegap, sixpack, ganteng ya walaupun otak kosong itu ga masalah!

7. masa depan ga jelas!

sekarang sudah banyak program generator, seperti php generator, visual GUI generator dan CMS CMS bertebaran di internet, masa depan programmer itu suram, ga enak, ga jelas, kalau pingin hidup aman , jadilah PNS, bahkan saat anda tidur atau ungkang ungkang baca koran, anda ttap dibayar, sekali lagi, masa depan ga jelas,

8. Tidak ada hari libur,

Berbeda dengan pegawai kantor yang selalu berbunga bunga ketika akhir weekend, menikmati hari libur bersama keluarga, tidak ada yang namanya hari libur bagi programmer, senin,minggu, libur tahun baru, valentine itu sama saja,hari itu flat, datar dan seandainya presiden membuat acara didepan rumah programmer ttersebut , itu juga tidak akan mengalihkannya dari coding, ingat koding dan keyboard sudah menyatu dengan badan programmer.

9. (dianggap) ga punya perasaan

MEmang sih pernyataan diatas tidak selamanya bnar, tapi dengan bekerja secara logic tiap hari, maka semuanya dipikir secara logic, kadang berbicara kasar, ga sabar dan kadang seperti orang gila teriak teriak sendiri, benturin kepala ketembok atu tepok jidat itu tiap hari dilakukannya hanya gara gara 1 baris kode erorr!,ingat kadang proggramer itu lebih menyeramkan daripada bulldog!.jika ingin ketemu dengan programer, carilah saat yang tepat, misal saat yang tepat ketmeu programmer adalah saat dimana dia nonton film comedy atau anime jepang. karena itulah satu satunya hiburan yang menarik bagi dia!

10. Dianggap tidak tepat janji!

ada stereotipe yang menganggap programmer adalah orang yang tidak tepat janji, misal janji kalau program selesai besok, eh ternyata blum jadi, anda pikir programmer itu malas, buang jauh jauh pikiran itu, kadang programer memang tidak menulis kode, karena bingun mo nulis apa, namun otaknya jalan terus, mencari solusi itu bisa berhari hari, anda pikir nulis program itu seperti nyusun batu bata seperti tukang bangunan, TIDAK programmer tidak menepati janjinya karena programming adalah bidang yang paling tidak pasti dalam hal “Kapan selasai”nya. anda mungkin berpikir, ah masa, loe aja kale yang ga profesional? Sekali lagi pikir dulu sebelum ngomong! perusahaan sekelas microsoft kadang menunda rilis produk selama 6 bulan lebih karena proyek program yang rencanya dirilis belum sempurna, programmernya malas?JELAS TIDAK. proggramer di microsoft itu kelas wahid, begitu juga di peruasahaan besar lainnya, Oracle, Google, Apple semuanya sering menunda rilis produk karena fitur yang dijanjikan kadang lebih sulit dari yang diduga.

Berpikir positiflah jika program anda belum selesai dibuat oleh programmer!. saya lupa, saya belum memperkenalkan diri, “I’am programmer, and I have no life”

update: Bagi yang nanggapin serius, plz deh…hidup jadi programmer tuh dah terlalu serius, jadi nikmati aja tulisan diatas, kata joker “Why so serius”. Saya sendiri programmer dan setelah menulis tulisan ini juga ga terus berhenti jadi programmer kok :D

Cheers

Dimas

Apache ServiceMix, adalah container open-source yg terintegrasi menjadi satu, seperti Apache ActiveMQ, Camel, CXF, ODE, Karaf. Untuk lebih jelasnya silahkan buka ServiceMix

Bagaimana memulai ServiceMix?
Kalau mencoba dari tutorial yg ada di tutorial akan terasa membingungkan. Maka cara yg lebih enak adalah memakai IDE Eclipse, persiapkan

1. Download ServiceMix
2. Download Eclipse
3. Install m2 plugin untuk Eclipse

Nah setelah semua sudah di-download, kemudian jalankan langkah2 berikut ini:

1. Jalankan service dari ServiceMix, bisa langsung menuju folder bin dan double-klik servicemix.bat atau buka command prompt kemudian arahkan ke folder ektrak-an dari servicemix, pilih folder bin dan jalankan >servicemix.bat (tinggal enter saja)

2. Buka Eclipse, kemudian pilih File -> Import -> Maven -> Existing Maven Projects
cari folder example dari ServiceMix dan pilih yg “cfx-osgi” kemudian kllik Finish

3. Klik kanan project -> Run -> Maven Install
sebuah file xx.jar akan dicreate oleh Maven, berada di folder “target didalam folder cfx-osgi

4. Copy xx.jar ke dalam folder folder “deploy” di dalam folder ServiceMix home

5. Kembali ke Eclipse, ada sebuah file client.html
buka dengan borwser file tersebut

6. Klik tombol “send”

7. Dan hasilnya kurang lebih seperti ini:
STATUS: 200 (dilanjutkan dgn tag-tag..)

8. jika ingin melihat perbedaannya, coba delete file xx.jar yg tadi berada di dalam folder “deploy”, maka anda akan melihat perbedaannya.

 

Setelah tidak sengaja masuk ke official site linux mint, dan melihat look n feel dari Linux Mint versi 12 yang dinamai “Lisa”, akhirnya saya mencoba untuk menginstall Linux Mint versi ini di laptop HP Probook 5220m. Setelah sukses menginstall OS, lalu saya pun menginstal beberapa repository aplikasi. Bagus sekali linux mint ini karena dari hasil komparasi dengan ubuntu 11.04 dan 11.10 beberapa repository yang harus di “add source”  di Linux Ubuntu 11.10 dan 11.04 sudah disediakan di repository default Linux Mint. Dari semua yang saya komparasi, ternyata ada bug “turunan” dari Linux Mint yang ada pada Linux Ubuntu 11.10 yaitu koneksi untuk modem huawei e220. dimana penjelasannya adalah mode USB Linux pada Ubuntu 11.10 belum mendukung mode fast switch sehingga modem huawei tipe e220 tidak bisa terkoneksi dengan baik meskipun modem sudah terkonfigurasi dengan benar dan teridentifikasi.

Untuk mengatasi hal ini, saya menggunakan perintah berikut agar modem fast switch di Linux berfungsi.

sudo usb_modeswitch -v 0x12d1 -p 1003 -V 0x12d1 -P 1003 -R

Setelah itu muncul teks yang menginformasikan bahwa modem akan di reset. selanjutnya cabut dan pasang kembali modem ke port USB laptop / komputer dan coba koneksinya kembali.

Memang baik menjadi orang penting, tetapi lebih penting menjadi orang baik

Saya membaca di sebuah majalah Indonesia yang berusaha menjelaskan kenapa orang mau membuat software open source. Di situ sedikit sekali disebutkan motivasi yang ada dan yang paling dibahas adalah developer atheis yang ingin berbuat kebajikan dalam hidup ini. Di posting ini saya hanya ingin menyatakan bahwa ada banyak motivasi lain bagi seseorang untuk membuat software open source, dan tidak perlu satu artikel penuh untuk membahas satu motivasi.

Ada alasan Komersial. Banyak orang yang tidak tahu bahwa ada banyak cara menghasilkan uang dari open source. Berikut ini saya tunjukkan beberapa di antaranya:

  • Developer membuat restriksi tertentu, misalnya jika ingin dipakai di aplikasi komersial, silakan bayar ke developer tersebut, atau buka source Anda. Contohnya lisensi GPL.
  • Developer menjual support untuk softwarenya (contoh: MySQL, gcc). Banyak pihak butuh support jika terjadi masalah di server mereka.
  • Developer punya versi yang lebih lengkap dan lebih bagus dari versi open sourcenya (contoh OpenBTS). Ini sedikit seperti model shareware, ada versi yang bisa dicoba, dan ada versi berbayarnya.
  • Developer punya plugin/module/library/theme untuk software open source yang bisa Anda beli (contoh: WordPress). Ini bisa banyak variannya, misalnya menjual tools khusus agar aplikasinya mudah dideploy di enterprise.
  • Developer menjual dokumentasi untuk softwarenya. Contohnya dokumentasi JPos harganya 50 USD. Programmer bisa mempelajari sendiri source codenya, tapi butuh waktu berapa jam? lebih murah membeli panduannya daripada berkutat dengan source code.
  • Website software tersebut ada iklannya, jadi developer mendapat uang dari iklan (banyak sekali proyek open source seperti ini).
  • Di software open source yang dipaketkan standar, ada iklannya (jika ingin versi tanpa iklan, silakan compile sendiri, contoh Free Download Manager)
  • Developer ingin supaya saingan saya yang closed source beralih ke software miliknya (kemudian membayar support atau membeli buku, atau melihat iklan di webnya, banyak contoh ini, misalnya OpenOffice). Sebagian orang juga berpikiran bahwa cara ini yang dipakai oleh Microsoft: biarkan saja sebagian orang membajak, asalkan perusahaan besar membayar lisensi Windows dan Office.
  • Developer ingin mempromosikan softwarenya untuk platform lain. Misalnya dulu Qt gratis di Linux, tapi komersial di Windows (sekarang gratis untuk semua platform).
  • Developer dibayar pihak lain atau bekerja sama dengan pihak lain, dan software tersebut sebenarnya mempromosikan produk mereka. Misalnya program yang hanya bisa melakukan koneksi ke database komersial tertentu. Firefox bekerja sama dengan Google (menjadikan Google sebagai search engine default).
  • Developer/perusahan ingin menguasai pasar dan akan mengambil keuntungan dari produk lain. Contohnya: Java. Oracle akan mengambil keuntungan dari berbagai application server for Java. Teknologi dasar Java sendiri bisa digratiskan dan diopensourcekan agar terkenal di berbagai platform.

Ada alasan personal. Alasan personal ini juga bisa banyak sekali:

  • Masalah ideologi. Banyak orang yang fanatik dengan apapun, dari mulai soal serius seperti agama, soal makanan (vegetarian, vegan, dsb), sampai yang tidak penting, seperti merk tas. Sebagian orang fanatik soal kebebasan software.
  • Masalah popularitas: ingin dikenal karena membuat sebuah software tertentu
  • Masalah keabadian nama: walaupun tidak dikenal luas, tapi nama saya ada di software terkenal yang dipakai semua orang, dan software itu akan “abadi” bebereapa puluh tahun ke depan.

Membalas jasa: Developer pernah memakai software gratis buatan orang dan itu sangat berarti baginya, jadi dia ingin membagikan karyanya sebagai balasan.

  • Malas mengurus software: developer punya software yang tidak ingin dia jual (mungkin kurang dipoles), tapi kadang tetap butuh software itu, jadi dibiarkan saja menjadi open source, supaya orang lain yang me-maintain.
  • Malas membuat software: sebagian orang membuat bagian kecil software dan mengundang orang lain menyumbangkan kode (ingat, ini tidak selalu berhasil, kalau memang idenya jelek atau softwarenya jelek, belum tentu ada yang mau memakai apalagi berkontribusi)
  • Pamer: “saya bisa bikin software ini. Software saya lebih bagus dari software buatan orang lain.”
  • Dedikasi untuk orang yang dicinta. Ada software yang dibuat untuk anak, untuk istri, pacar, dsb.
  • Orang yang ingin berbuat sesuatu untuk agamanya. Misalnya saya membuat aplikasi Alkitab, sedangkan ada orang lain yang membuat aplikasi pengingat Shalat, dsb.
  • Software sudah tidak menguntungkan lagi, misalnya beberapa compiler yang sempat populer di tahun 80-an sekarang diopensourcekan, karena memang sudah tidak dipakai orang lagi. Pembuatnya hanya ingin orang lain bisa mempelajari karyanya, dan namanya bisa abadi di internet.
  • Orang atheis atau orang pendosa yang ingin berbuat kebaikan.

Ada alasan terpaksa. Sebagian membuka source code mereka karena keterpaksaan:

  • Developer membuat clone game komersial, tapi kalau dijual nanti dia bisa dituntut, jadi disebarkan saja gratis dan open source.
  • Developer memodifikasi program yang lisensinya menyatakan bahwa developer harus menyebarkan modifikasi tersebut.

Jadi jangan heran kalau ada banyak software open source, banyak orang membuat software open source dengan motivasi masing-masing.

diambil dari : http://www.cintaprogramming.com

In this article i want share how to invoke GetSession Web Service in OCSG to create Session using SAAJ (Soap Attachment API for Java).

The SOAP with Attachments API for Java or SAAJ provides a standard way to send XML documents over the Internet from the Java platform.

SAAJ enables developers to produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note.

Developers can also use it to write SOAP messaging applications directly instead of using JAX-RPC or JAX-WS.

The essential object for using SAAJ is a SOAPMessage object created by a call to the createMessage method of MessageFactory. The problem of the existence of both SOAP 1.1 and SOAP 1.2 Web services is solved by having MessageFactory implementations which let the programmer specify the style to be generated. The scope of the SAAJ standard emphasizes the API for constructing SOAP messages, but it does provide the abstract SOAPConnection class, which implementations can use for simple message transmission.

Logically enough, the essential parts of a SOAP message each have corresponding Java classes in SAAJ. The most significant feature of this toolkit is that these core classes representing various parts of SOAP message implement the appropriate org.w3c.dom interfaces. This means that the SOAP objects are compatible with the familiar XML manipulation tools in the standard Java library.

In the SAAJ toolkit, a SOAPMessage object contains a complete SOAP message. A message is either a SOAP-formatted XML document or a MIME multipart message whose first section is an XML document. The SOAP formatted XML is contained in a SOAPPart object which implements the org.w3c.dom Document interface. All SOAPMessages contain a single SOAPPart, which in turn contains a SOAPEnvelope corresponding to the root element of the document.

Inside the Envelope element, a SOAP message is required to have a Body element and may have one Header element. SAAJ provides the SOAPHeader and SOAPBody objects to enable the programmer to manipulate the content of these elements. SAAJ just provides the mechanism, actually creating the contents of the SOAPBody and SOAPHeader is up to the programmer.

below is the example code invoking web service using SAAJ

package com.test.helloworld.client;

import java.net.URL;

import java.util.Iterator;
import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPHeaderElement;
import javax.xml.soap.SOAPMessage;
public class test {

/**
* @param args
*/

public static void main(String[] args) {

try{

SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection connection = soapConnectionFactory.createConnection();
SOAPFactory soapFactory = SOAPFactory.newInstance();

MessageFactory msg_factory = MessageFactory.newInstance();
SOAPMessage message = msg_factory.createMessage();

SOAPHeader header = message.getSOAPHeader();
SOAPBody body = message.getSOAPBody();
javax.xml.soap.Name bodyname = soapFactory.createName(“WebMethod”,”reference
Name”,”Namespace”);

SOAPBodyElement bodyElement = body.addBodyElement(bodyname);
bodyElement.addChildElement(“Name”).addTextNode(“Hello World”);

SOAPConnectionFactory cFac = SOAPConnectionFactory.newInstance();
SOAPConnection soapCon = cFac.createConnection();

SOAPMessage resMsg = soapCon.call(message, new URL(“URL Endpoint web
service”));
resMsg.writeTo(System.out);

}catch(Exception e){

// Catch exception and Log it or print into console
e.printStackTrace();

}

}

}

Oracle Communication Service Gatekeeper (OCSG)

Communication Service Plugins

Development Procedures

Introduction

This document provides the development procedures for Telkom Speedy Service Soap2Soap Communication Service on OCSG, including code generation, code modification, building, deployment, provision and unit testing.

Prerequisite

  1. Download OCSG 4.1.1 installation package

  2. Download OCSG 4.1 documenation package

  3. [OPTIONAL] Read “Concepts and Architectural Overview”

  4. [OPTIONAL] Read “Platform Development Studio – Developer’s Guide”
  5. Installation of Eclipse 3.5 or later

Creating Communication Service OCSG using Eclipse IDE

Before creating CS (Communication Service) in Eclipse, make sure that the OCSG plugin is already installed in your Eclipse plugin directory. In this case, we assume that we have OCSG plugins in our Eclipse plugin directory.

To start creating CS, first run your Eclipse IDE

and go to the workbench for start creating project (shown in picture below).

Click File on the menu and choose new project or we can use keyboard shortcut CTRL + N. For the project, choose Communication Project (Shown in picture below).

Press NEXT button for start creating CS project (Shown in picture below). In the Project Name, name your project based on service purpose or name it as u like. DON’T check the use predefined communication service because our goal is to CREATE NEW communication service plugin and NOT USE created communication service plugin. Press Next for go to Next Step.

Now we configuring NT plugin CS (for communicating with internal network). First add WSDL file to our cs project it is use for generating template code of NT CS, what the method exist and how to use that method. Press “+” icon in the configure Service WSDL File for adding WSDL file

wsdl file is an XML type file with an extension of WSDL (eg. Service.wsdl), If you can’t figure it out, see the picture below. Press OK button if you have find the wsdl file.

After we press OK button, we go back to the previous windows that is configuring NT service. Fill all the necesary field as shown in the picture below. The value of all data is depend on your call, but the description of the field is like this :

a. Company : The company name belong to the service.

b. Version : Service version number (e.g : 1.0 | 2.1 | 4.1.1) it will shown in the admin console of OCSG

c. Service type : Service type of our communication service, (e.g : Post | Get | cekNotel information)

d. Java Class Package Name : The java package name (basic in package naming of java source project. e.g : com.telkom.siska.speedy.service | com.example.service).

e. Context Path : The URI path of the service (e.g : path/service | service | parlayx44/service).

Note : Don’t check the Support Type checkbox.

See the picture below to see what to do and don’t. Press NEXT button to go to next step.

After we finish configuring the NT service, now we start to configure the AT layer service. AT layer service is web service where the third application will invoke to. To create AT layer service, just click the icon and it will show popup windows to begin configuring the AT Layer (shown it the picture below).

Like the NT layer data, we must fill all the necesary informatio regarding to AT layer service. All the information describes below ;

a. Protocol : Protocol name use in AT service (e.g : soap | rest | bla | etc )

b. Schemes : don’t fill the information.

c. Package Name : Same as the NT layer, this is the java basic package naming.

d. Company : Company name that owned the service.

e. Version : Service version (e.g : 1.0 | 2.1 | 4.1.1 )

f. Type : The Service type, (default is SOAP type services).

See the complete in the picture bellow

After all the necessary information filled, now press Finish button.

Wait after the generate process finish, Eclipse now is build our code based on the template information that we set in this configuration.

After the process finish, it will generate the java code, like shown below.

Now we must add some java code in the generated java file of CS project.

Example code for AT interface Telkom Siska is shown below :

package com.get.response.hello.helloport.north;

import org.apache.log4j.Logger;

import com.bea.wlcp.wlng.api.edr.Edr;

import com.get.response.hello.plugin.HelloPlugin;

import org.apache.axis.client.Service;

import org.apache.axis.client.Call;

import org.apache.axis.encoding.XMLType;

import javax.xml.rpc.ParameterMode;

/**

*

* This class was generated on <I>Tue May 24 00:20:13 WIT 2011</I>.

*

*/

publicclass HelloPluginImpl implements HelloPlugin {

privatestaticfinal Logger logger = Logger.getLogger(HelloPluginImpl.class);

/**

* <B>helloName</B>

*

*/

@Edr

public java.lang.String helloName(java.lang.String HelloName)

{

logger.trace(“METHOD_IN”);

String result = null;

try{

String EndPointURL = “http://localhost:8021/HelloWorld/helloService?WSDL”;

String methodName = “HelloName”;

Service service = new Service();

Call call = (Call)service.createCall();

call.setTargetEndpointAddress(new java.net.URL(EndPointURL));

call.setOperation(methodName);

call.addParameter(“name”, XMLType.XSD_STRING, ParameterMode.IN);

call.setReturnType(XMLType.XSD_STRING);

result = (String)call.invoke(new Object[]{“DIMAS”});

}

catch(Exception e){

logger.error(e.getMessage());

}

return result;

//throw new RuntimeException(“Not yet implemented”);

}

}

That is the Axis based code for invoke web services. Read Axis Web Service document for complete documentation.

Below is the example code for Communication Service Java Bean. The java code will generate automatically by Eclipse, but for custom purpose we must add java code in it. Naming of the file will be likes this (your protocol name)Bean.java.

package com.speedy.siska.services.get.management;

importcom.bea.wlcp.wlng.api.management.ManagementException;

/**

* This is the generated code for management interface for the Plug-in

*

* @author Copyright (c) 2005 by BEA Systems, Inc. All Rights Reserved.

*/

//Edit this file to add/modify required management attributes and operations

publicinterface GetMBean {

/**

* Description of sampleAttribute

*/

public String sampleAttribute = “defaultValue”;

/**

* Description of sampleOperation

* @param param1 Description for param1

* @param param2 Description for param2

* @return

* @throws ManagementException

*/

}

The BeanImplementation (BeanImpl.java) is extended java class for Java Bean or in this case is extended for GetBean.java. In the Bean, we define methods for creating custom configuration to the CS plugin in the OCSG. In the BeanImpl.java we construct the workflow of the methods that we define first in the Bean java. So, the methods in the Bean must exist and use name also parameters same as define in the Bean java file.

Bellow is the example code for ProsesStudi BeanImpl.java

package com.speedy.siska.services.get.management;

import com.bea.wlcp.wlng.api.management.WLNGMBeanDelegate;

import com.bea.wlcp.wlng.api.management.ManagementException;

import org.apache.log4j.Logger;

import javax.management.NotCompliantMBeanException;

/**

* This is the management implementation for the plugin

*

* @author Copyright (c) 2005 by BEA Systems, Inc. All Rights Reserved.

*

* This class was generated on <I>Wed May 25 23:32:57 WIT 2011</I>.

*/

// Edit this file to add/modify required management attributes and operations

public class GetMBeanImpl extends WLNGMBeanDelegate implements GetMBean {

private String sampleAttribute = ” “;

private static final Logger logger = Logger.getLogger(GetMBeanImpl.class);

/**

* Default constructor

*

* @throws NotCompliantMBeanException thrown on failure to to register an

* object in the MBean server.

*/

public GetMBeanImpl() throws NotCompliantMBeanException {

super(GetMBean.class);

logger.trace(“METHOD_IN”);

}

}

Note :

As we can see, in the GetMBean.java we didn’t create any methods and so in the GetMBeanImpl.java we didn’t create any workflow for the methods that we define in the GetMBean.java.

We move to next java code that is PluginService.java. In the PluginService.java we construct the methods for the plugin service. Before we can use the CS plugin in the OCSG, the plugin must exist in the OCSG as the plugin service first. So in this code we construct for that activity.

The code itself is auto generated by Eclipse, we don’t need to add anything in it but if we want to add the activity to the log file for debuging activity just add this logger.trace(“METHOD_IN”); into all the methods. It will create log file for all activity in the plugin service.

Below is the complete code for Prosestudi Plugin Service java code.

package com.speedy.siska.services.get;

import javax.management.ObjectName;

import com.bea.wlcp.wlng.api.plugin.ServiceType;

import com.bea.wlcp.wlng.api.plugin.ManagedPluginService;

import com.bea.wlcp.wlng.api.plugin.common.DeploymentException;

import com.bea.wlcp.wlng.api.plugin.CompletionBarrier;

import com.bea.wlcp.wlng.api.plugin.ManagedPluginInstance;

import com.bea.wlcp.wlng.api.plugin.PluginPool;

import com.speedy.siska.services.get.management.GetMBean;

import org.apache.log4j.Logger;

/**

* Plugin service implementation.

*/

public class GetPluginService implements ManagedPluginService {

/** Supported address schemes */

private static final String[] SUPPORTED_SCHEMES = { “” };

private static final Logger logger = Logger.getLogger(GetPluginService.class);

/**

* Plugin service id

*/

private String id;

/**

* Plugin pool

*/

@SuppressWarnings(“unused”)

private PluginPool pool;

/**

* Instantiates the plugin.

*/

public GetPluginService() {

logger.trace(“METHOD_IN”);

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginServiceLifecycle#init(String, com.bea.wlcp.wlng.api.plugin.PluginPool)

*/

public void init(String id, PluginPool pool) {

logger.trace(“METHOD_IN”);

this.id = id;

this.pool = pool;

}

/*

* @see com.bea.wlcp.wlng.plugin.PluginServiceLifecycle#doStarted()

*/

public void doStarted() throws DeploymentException {

logger.trace(“METHOD_IN”);

}

/*

* @see com.bea.wlcp.wlng.plugin.PluginServiceLifecycle#doStopped()

*/

public void doStopped() throws DeploymentException {

logger.trace(“METHOD_IN”);

}

/*

* @see com.bea.wlcp.wlng.plugin.PluginServiceLifecycle#doActivated()

*/

public void doActivated() throws DeploymentException {

logger.trace(“METHOD_IN”);

}

/*

* @see com.bea.wlcp.wlng.plugin.PluginServiceLifecycle#doDeactivated()

*/

public void doDeactivated() throws DeploymentException {

logger.trace(“METHOD_IN”);

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginServiceLifecycle#handleResuming()

*/

public void handleResuming() throws DeploymentException {

logger.trace(“METHOD_IN”);

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginServiceLifecycle#handleSuspending(CompletionBarrier)

*/

public void handleSuspending(CompletionBarrier barrier) throws DeploymentException {

logger.trace(“METHOD_IN”);

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginServiceLifecycle#handleForceSuspending()

*/

public void handleForceSuspending () {

logger.trace(“METHOD_IN”);

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginService#getSupportedSchemes()

*/

public String[] getSupportedSchemes() {

logger.trace(“METHOD_IN”);

return SUPPORTED_SCHEMES;

}

public ServiceType getServiceType() {

logger.trace(“METHOD_IN”);

return com.speedy.siska.services.servicetype.GetServiceType.type;

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginService#getNetworkProtocol()

*/

public String getNetworkProtocol() {

logger.trace(“METHOD_IN”);

return “get”;

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginInstanceFactory#createInstance(String)

*/

public ManagedPluginInstance createInstance(String pluginInstanceId) throws DeploymentException {

logger.trace(“METHOD_IN”);

return new GetPluginInstance(pluginInstanceId);

}

}

As we mentioned before, before we can use the plugin, it must exist in the OCSG as plugin service first. And after the plugin exist as the plugin service in the OCSG we must create it instance. In this java code, the workflow of the instance plugin service will describes in this java code.

package com.speedy.siska.services.get;

import com.bea.wlcp.wlng.api.management.MBeanManager;

import com.bea.wlcp.wlng.api.plugin.ManagedPluginInstance;

import com.bea.wlcp.wlng.api.plugin.common.DeploymentException;

import com.bea.wlcp.wlng.api.plugin.PluginInterfaceHolder;

import com.bea.wlcp.wlng.api.plugin.RequestInfo;

import org.apache.log4j.Logger;

import java.util.List;

import java.util.ArrayList;

import javax.management.ObjectName;

import com.speedy.siska.services.plugin.Getnotel_InfoPlugin;

import com.speedy.siska.services.get.getnotel_infoport.north.Getnotel_InfoPluginImpl;

import com.speedy.siska.services.get.management.GetMBean;

import com.speedy.siska.services.get.management.GetMBeanImpl;

/**

* Plugin Instance implementation.

*/

public class GetPluginInstance implements ManagedPluginInstance {

/**

* North interfaces

*/

private final List<PluginInterfaceHolder> northList = new ArrayList<PluginInterfaceHolder>();

private static final Logger logger = Logger.getLogger(GetPluginInstance.class);

/**

* South interfaces

*/

private final List<PluginInterfaceHolder> southList = new ArrayList<PluginInterfaceHolder>();

/**

* The plug-in instance id.

*/

private final String id;

private GetMBean MBean;

private ObjectName MBeanName;

/**

* Constructor.

*/

public GetPluginInstance(String id) {

logger.trace(“METHOD_IN”);

this.id = id;

}

/*

* @see com.bea.wlcp.wlng.plugin.PluginInstanceLifecycle#activate()

*/

public void activate() throws DeploymentException {

logger.trace(“METHOD_IN”);

try {

MBean = new GetMBeanImpl();

MBeanName = MBeanManager.constructObjectName(GetPluginInstance.class.getName(), this.id);

MBeanManager.registerMBean(MBean, MBeanName, this.id);

Getnotel_InfoPluginImpl pluginImpl = new Getnotel_InfoPluginImpl();

northList.add(new PluginInterfaceHolder(Getnotel_InfoPlugin.class, pluginImpl));

} catch (Throwable e) {

if(MBean != null){

try{

MBeanManager.unregisterMBean(MBeanName);

}

catch(Throwable a){

a.printStackTrace();

}

}

throw new DeploymentException(e);

}

}

/*

* @see com.bea.wlcp.wlng.plugin.PluginInstanceLifecycle#deactivate()

*/

public void deactivate() throws DeploymentException {

logger.trace(“METHOD_IN”);

}

/*

* @see com.bea.wlcp.wlng.plugin.PluginInstance#isConnected()

*/

public boolean isConnected() {

logger.trace(“METHOD_IN”);

return true;

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginInstance#getNorthInterfaces()

*/

public List<PluginInterfaceHolder> getNorthInterfaces() {

logger.trace(“METHOD_IN”);

return northList;

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginInstance#getSouthInterfaces()

*/

public List<PluginInterfaceHolder> getSouthInterfaces() {

logger.trace(“METHOD_IN”);

return southList;

}

/**

* @see com.bea.wlcp.wlng.api.plugin.PluginInstance#customMatch(com.bea.wlcp.wlng.api.plugin.RequestInfo)

*/

public int customMatch(RequestInfo requestInfo) {

logger.trace(“METHOD_IN”);

return MATCH_OPTIONAL;

}

}

The last is the AT part of the plugin that face to the external network. In this java code, we describes the flow what the plugin do when third application invoked / call it.

Because the purpose of the plugin is to return the Notel speedy status to the third application based on the Notel parameter. So we just create the code for invoke / call the web service exist in the NT network.

This java file is also autogenerate by Eclipse, all we need to do is replace this code Thrown not complianceException by our code.

Below is the complete code in the PluginImplementation.

package com.speedy.siska.services.get.getnotel_infoport.north;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.net.InetAddress;

//import java.net.MalformedURLException;

import java.net.Socket;

//import java.rmi.RemoteException;

//import javax.xml.namespace.QName;

//import javax.xml.rpc.ParameterMode;

//import javax.xml.rpc.ServiceException;

import com.bea.wlcp.wlng.api.edr.Edr;

//import org.apache.axis.client.Call;_return

//import org.apache.axis.client.Service;

//import org.apache.axis.encoding.XMLType;

import org.apache.commons.lang.StringUtils;

import org.apache.log4j.Logger;

import com.speedy.siska.services.plugin.Getnotel_InfoPlugin;

import com.telkom.sdp.speedy.services.NotelinformResponse;

import com.telkom.sdp.speedy.services.Test;

/**

*

* This class was generated on <I>Wed May 25 23:32:55 WIT 2011</I>.

*

*/

public class Getnotel_InfoPluginImpl implements Getnotel_InfoPlugin {

/**

* <B>notelinform</B>

*

*/

private static final Logger logger = Logger.getLogger(Getnotel_InfoPluginImpl.class);

@Edr

public com.telkom.sdp.speedy.services.NotelinformResponse notelinform(com.telkom.sdp.speedy.services.Test parameters)

{

/*

NotelinformResponse response = new NotelinformResponse();

NotelInformation information = new NotelInformation();

String resp = NotelInformation.GetInfo(parameters.getInput().toString());

response.setReturn(resp);

return response;

*/

StringBuilder sb = new StringBuilder();

try {

String XMLRequest = “<soapenv:Envelope”+” xmlns:soapenv=\”http://schemas.xmlsoap.org/soap/envelope/\”"+” xmlns:ser=\”http://services.speedy.sdp.telkom.com/\”>”+

“<soapenv:Header/>”+

“<soapenv:Body>”+

“<ser:test>”+

“<input>”+parameters.getInput()+”</input>”+

“</ser:test>”+

“</soapenv:Body>”+

“</soapenv:Envelope>”;

//Create socket

String hostname = “10.0.40.101″;

int port = 8001;

InetAddress addr = InetAddress.getByName(hostname);

Socket sock = new Socket(addr, port);

//Send header

String path = “/Telkom_Speedy_WS/getnotel_infoService”;

BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream(),”UTF-8″));

// You can use “UTF8″ for compatibility with the Microsoft virtual machine.

wr.write(“POST ” + path + ” HTTP/1.0\r\n”);

wr.write(“Host: 10.0.40.101\r\n”);

wr.write(“Content-Length: ” + XMLRequest.length() + “\r\n”);

wr.write(“Content-Type: text/xml; charset=\”utf-8\”\r\n”);

wr.write(“\r\n”);

//Send data

wr.write(XMLRequest);

wr.flush();

System.out.println(XMLRequest);

System.out.println(“_________________________________________________________________”);

// Response

BufferedReader rd = new BufferedReader(new InputStreamReader(sock.getInputStream()));

String line;

while((line = rd.readLine()) != null)

{

sb.append(line);

}

}

catch (Exception e) {

e.printStackTrace();

}

System.out.println((StringUtils.substringBetween(sb.toString(), “<return>”, “</return>”)));

//res.setResult((StringUtils.substringBetween(sb.toString(), “<return>”, “</return>”)));

NotelinformResponse response = new NotelinformResponse();

response.setReturn((StringUtils.substringBetween(sb.toString(), “<return>”, “</return>”)));

//System.out.println(“DIMAS”);

//System.out.println(“DIMAS”);

return response;

}

}

After we write all the code. Is time to compile java code using ANT generated function. Before we can compile it, we must add several parameter into Build.xml and Common.xml file. This part we do if we use code using external library of the eclipse (e.g : Axis1 , Axis 2).

Build.xml and Common.xml are in the root of your CS project directory

Open the Build.xml file and add this <attributename=“Class-Path”value=“lib/axis-ant.jar lib/axis.jar lib/commons-logging.jar lib/jaxrpc.jar lib/saaj.jar lib/wsdl4j.jar”/>

into <targetname=“make-facade”> tag. See the picture below.

And also insert the code in the <targetname=“make-enabler”> tag. See the picture below.

After we finish edit Build.xml file, we now must edit Common.xml file. Common.xml use Build.xml as the general configuration.

Add this code

<propertyname=“lib.axis”location=“${pds.lib}/axis”/>

<propertyname=“lib.commons”location=“${pds.lib}/commons”/>

in the <!– thirdparty –> section. See picture below

Add this code

<filesetdir=“${lib.axis}”includes=“axis-ant.jar, axis.jar, jaxrpc.jar, saaj.jar, wsdl4j.jar”/>

<filesetdir=“${lib.commons}”includes=“commons-logging.jar”/>

in

<!– Defines the communication service layer generation task –> section. See the picture below.

After we finish edit Build.xml and Common.xml file, now we create library folder for store our jar library files that we use in this CS project. In the Project Explorer Eclipse, Go to services type folder. Because we name the services type GoNotel, so we go to that named folder and open the resources folder inside common folder. See the picture below.

Click File → New → Folder or CTRL + N and choose folder. It will show the popup windows, see the picture below.

Name the folder name lib under the resources and click finish button.

After we finish creating lib folder, now we add jar files into the lib folder. The jar files that we copy into lib folder is the jar files we use in the project only. Because we use axis library in our project, so we must add axis library into the lib folder. The Axis library can we found in OCSG instalation folder. In the OCSG instalation folder, go to folder WLNG_PDS400 → lib → Axis and copy all the files in the folder. See the picture below.

Go to Project Explorer in Eclipse, choose our created folder lib and paste into it. It will copy all the files into the lib folder. See the picture after we paste the file into our project folder.

After we finish copy all the necessary files into our lib folder. Now the we configure the policy for our plugin. OCSG require all the plugins has policy in it. If don’t add webservices policy, the OCSG will not authenticate it and denied access to the value of the plugin return to third application or the technical name is Filter.

To do it, we can create xml file and name it weblogic-webservices-policy.xml.

Add into the xml file this code :

<?xmlversion=’1.0′encoding=‘UTF-8′?>

<webservice-policy-refxmlns=“http://www.bea.com/ns/weblogic/90″xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>

<port-policy>

<port-name>Your Port name in the wsdl file</port-name>

<ws-policy>

<uri>policy:Auth.xml</uri>

<direction>inbound</direction>

</ws-policy>

</port-policy>

</webservice-policy-ref>

save it under common directory of our project, see the picture below.

After all the steps are done, now we can compile the code using ANT generated function. Go to Build.xml under your root project directory, or in the Project Explorer of eclipse, click in the Build.xml file near Common.xml and left click your mouse or your left button touchpad and choose run as. If you want to use keyboard shortcut just press SHIFT + ALT + X + Q. See the picture below.

If we follow all the step describe before, in the generate ANT it will show BUILD SUCCESFUL. See the picture below.

But if not, probably we miss step. Just go to the error ant and see what the error is. After Build succesfull, ANT will create 2 EAR files under dist folder. See the picture below.

This 2 files are the files that we deploy into OCSG. Copy this 2 files, and paste it into folder that can be reach when we explore EAR files to be deployed into OCSG.

Pada postingan ini, gw mau menshare bagaimana menjalankan aplikasi eksternal via Web menggunakan Javascript. Code ini hanya bisa dijalankan pada browser IE 7 / 8 atau browser yang support ActiveX plugins. Silahkan copy-paste code dibawah ini,  Edit pathnya jika ingin menjalankan aplikasi tersendiri.

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”><html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta content=”id” http-equiv=”Content-Language” />
<meta content=”text/html; charset=utf-8″ http-equiv=”Content-Type” />
<title>Example Running External Application</title>
<script type=”text/javascript”>
function createXHTMLRequest()
{
var xmlHttp;
if  (window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);
}
catch(e)
{ alert(e.message);}
}
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{ alert(e.message); }
}
}

function run_apps1()
{
alert(“Running Apps 1 : Notepad”);
if  (window.ActiveXObject)
{
try
{
var objShell = new ActiveXObject(“WScript.shell”);                                                                         objShell.run(“notepad.exe”, 1, true);

alert(“Application 1 has been successfully running..!!”);

}
catch (e)
{ alert(e.message); }
}
else
{
alert (“Your browser does not support ActiveX.”);
}
}

function run_apps2()
{
alert(“Running Apps 2 : Microsoft Word”);
if  (window.ActiveXObject)
{
try
{
var objShell = new ActiveXObject(“Word.Application”);                                                                objShell.Visible = true;

alert(“Application 2 has been successfully running..!!”);

}

catch (e)
{ alert(e.message); }
}
else
{
alert (“Your browser does not support ActiveX.”);
}
}

function run_apps3()
{
alert(“Running Apps 3 : Microsoft Excel”);
if  (window.ActiveXObject)
{
try
{
var objShell = new ActiveXObject(“Excel.Application”);

objShell.visible = true;
alert(“Application 3 has been successfully running..!!”);

}

catch (e)
{ alert(e.message); }
}
else
{
alert (“Your browser does not support ActiveX.”);
}
}

</script>

</head>

<body onload=”createXHTMLRequest()”>

<p style=”font-style:normal”>Example : Running External Application Via Web</p><table style=”width: 100%”>

<tr>

<td> Running : Notepad

<form method=”post”>

<input name=”Button1″ onclick=”run_apps1()” type=”button” value=”button” /></form>

</td>

<td> Running : Microsoft Word

<form method=”post”>

<input name=”Button2″ onclick=”run_apps2()” type=”button” value=”button” /></form>

</td>

<td> Running : Microsoft Excel

<form method=”post”>

<input name=”Button3″ onclick=”run_apps3()” type=”button” value=”button” /></form>

</td>

</table>

</body>

</html>

Silahkan di coba n good luck…. ;)

Selama seminggu kemarin, gw disuruh mempelajari tentang Oracle Communication Service Gatekeeper(OCSG) dikarenakan di kantor akan mendevelop service-service yang nantinya berjalan menggunakan OCSG tersebut. Bagi  temen-temen yang belum mengetahui tentang OCSG, gw akan coba berbagai ilmu tentang OCSG.

OCSG

OCSG adalah sebuah produk dari Oracle yang menjembatani network bearer dengan internal maupun external application yang ada pada system terintegrasi dari suatu perusahaan telekomunikasi. Secara garis besar OCSG mempunyai fitur seperti berikut:

  1. Memberikan API untuk mengakses ke network element
  2. Menyediakan development tools untuk service creation
  3. Mengusung konsep SOA dengan mempublish network element sebagai webservice
  4. Flexible dalam mengkonfigurasi otorisasi untuk throttling traffic
  5. OSS dan billing integration

Arsitektur Aplikasi

Untuk arsitektur softwarenya sendiri, komponennya dapat dibagi menjadi Communication services, Container Services, dan Deployment model.

Communication services, adalah componen yang menjalankan OCSG itu sendiri. Tujuan dari komponen ini adalah memberikan capabilitas network untuk setiap aplikasi yang menggunakan IP based. Setiap traffic yang ada pasti akan melalui komponen ini. Disini kita dapat melakukan konfigurasi policy, SLA, routing. Di titik ini juga kita dapat melakukan aktivitas monitoring untuk setiap traffic yang ada.

Container Serivices, menyediakan plugin service yang siap dipakai sebagai dasar-dasar komponen aplikasi. Di dalamnya terdapat fungsi standar Parlay X (Standar aplikasi telephony), CDR creation, EDR (Broadcasts events and manages their translation into charging data and alarms, as necessary), statistik, budget.

Deployment Model, Menyediakan fungsi-fungsi skalabilitas seperti clustering dan load balancing. Setiap OCSG akan terinstal dengan menggunakan komponen EAR.

Platform Test Environment

Untuk mendukung produktifitas, OCSG juga menyediakan test simulator untuk mendukung service creation. Platform Test Simulator (PTE) yang dibundling bersama OCSG ini mempunyai fungsi dalam mensimulatorkan network element di dunia telco seperti SMSC, MMSC, UMB, serta simulator Billing dan diameter IN access.

Sebagai contoh penggunaan, dalam simulator ini kita dapat melakukan pengiriman SMS. Terdapat 2 mobile subscriber: A dan B  yang akan melakukan pengiriman pulsa. Si A mengirim pulsa ke si B. SMS dari A akan diteruskan ke SMPP simulator, lalu ditembakan kedalam service bus sebagai penyedia service transfer pulsa. Dari service bus tersebut melakukan trigerring untuk deduct balance dari billing simulator dan selanjutnya simulator akan mengirim SMS konfirmasi kepada kedua mobile subscriber tersebut. Semua dapat dilakukan hanya dengan PTE, tanpa terkoneksi ke element network apapun.

Kesimpulan

Aplikasi ini adalah aplikasi yang proven, menyediakan fleksibilitas, dan mempercepat proses service creation. Aplikasi ini adalah modal dasar menuju Service Delivery Platform (SDP). Sangat baik diterapkan untuk menanggunalangi traffic telekomunikasi.

Link terkait: http://edocs.bea.com/wlcp/wlng40/index.html

Jika  mengalami permasalahan ini, silahkan coba langkah-langkah berikut (Contoh kasus pada web aplikasi eRecruitment) :

1.       Masuk ke SQL Management Studio

2.      Login seperti biasa, tekan tombol Login ketika muncul window login.

3.       Ketika sudah masuk ke SQL Server Management Studio,  coba cek apakah NT AUTHORITY/IUSR ada pada daftar login yang dibolehkan oleh SQL Management Studio? Jika tidak maka ini yang menjadi kendala. Caranya buka Security pada menu dibagian kiri lalu klik Logins

4.       Permasalahan NT AUTHORITY/IUSR  dapat di atasi dengan menambahkan akun NT AUTHORITY/IUSR kedalam Login yang diperbolehkan oleh SQL Management Studio.  Pada ikon folder Logins, klik kanan, lalu pilih New Login.

5.       Setelah New Login di pilih maka akan muncul jendela Login-New, seperti pada gambar dibawah ini. Pada Jendelah Login-New, klik Search.

6.       Setelah tombol Search ditekan, maka akan muncul jendela pop-up Select User or Group. Pada jendela Select User or Group klik tombol Advanced

 

7.       Setelah tombol Advanced di tekan maka akan muncul jendela selanjutnya. Klik Find Now, lalu cari IUSR pada area Search Result dibawah Tombol Find Now. Setelah IUSR ditemukan, sorot IUSR tersebut lalu klik tombol OK. Lihat gambar dibawah.

8. IUSR sekarang sudah masuk kedalam Logins yang diperbolehkan oleh SQL Management Studio. Nah sekarang, klik kanan IUSR pada area Logins, lalu pilih properties. Lihat gambar dibawah

9.       Setelah menu properties dipilih, maka jendela properties – NT AUTHORITY / IUSR akan muncul.  Pada menu sebelah kiri pilih Server Role, maka tampilan sebelah kanan akan berubah ke Server Role. Ceklis Sysadmin (jika ada yang lain yang di ceklis, biarkan saja) . Lihat gambar dibawah

10.   Setelah selesai menceklis NT AUTHORITY pada server role, maka selanjutnya pilih User Mapping pada menu sebelah kiri. Pada area sebelah kanan akan berubah.  Pada area User Mapped to this Login ceklis nama database yang digunakan oleh NT AUTHORITY/IUSR. Pada Area Database Role Membership for db_eRecruitment (dibawah Users Mapped to this Login) ceklis db_owner. Lihat gambar dibawah ini.

11.   Setelah semua dilakukan, klik tombol OK. Lalu jalankan kembali aplikasi seperti biasa.

 

Good Luck.. ;)

Blog pada WordPress.com. | Tema: Motion oleh volcanic.
Ikuti

Get every new post delivered to your Inbox.