SOALIB Overview and Use Cases

[Download Pdf Version]

Abstract

SOALIB is a large software and this document is not designed to cover and explain every aspect of SOALIB. It encompasses the major features and the use cases, which help software engineers, technologists, decision makers, CIO/CTO, other individuals who is interested to learn about SOALIB without going deep into too much technical details. After reading this paper, you will get a general overview of SOALIB and is use in relation to the various applications.

Server Specs

  • WS-I Basic
    Profile 1.0
  • WS-Security 1.0
  • SOAP 1.0
  • Servlet 2.3
  • Java 1.6

 Supported
Databases

  • Access
  • Binary
  • Db2
  • Dbase
  • Derby
  • EnterpriseDB
  • FileMaker
  • Firebird
  • Foxbase
  • Frontbase
  • Hsql
  • Informix
  • Ingres
  • Interbase
  • MaxDB
  • Mysql
  • Openbase
  • Oracle
  • Pointbase
  • Postgres
  • SqlAnywhere
  • Sql Server
  • Sybase
  • Text
  • CSV,TAB
  • TimesTen

Operating
Systems

  • Linux
  • Windows
  • Mac OS X
  • Solaris
  • z/OS

Client API

  • Java
  • Android
  • J2ME
  • C#
  • C/C++

App Servers

  • GlassFish
  • JBoss
  • Jetty
  • Oracle
  • Resin
  • WebSphere
  • Tomcat
  • WebLogic
  • Any Sevlet 2.3

Introduction

SOALIB® is a set of ready built and tested web services for consumer's use. SOALIB Online is the online hosted version of SOALIB for use by end users. SOASYNC,a data synchronization application from Soalib, Inc, is an application software which consumes SOALIB services to synchronize heterogeneous data. In addition to SOALIB Online, SOALIB is also offered in a private hosting environment as well as sold in the customer's own environment. All information provided in this article applies to both SOALIB Online as well as SOALIB standalone versions. SOALIB Online is designed for end users and therefore is restricted in certain features to maintain security. These restrictions are not available in the full standalone version of SOALIB.

 

Reduces SOA Application Development time by 50% with reuse
Supports Multiple-operating environment
Saves years of development
Easy to use API for Quick Learning – requires no in depth SOA experience
Client API ported to multiple languages: Java, J2ME, C#, C++, C
Ported to multiple execution space: PC, Mobile, Mainframes, and Embedded Systems
Industrial strength near real-time incremental bi-directional custom mapped data sync engine
Compliant with existing SOA standards: WS-Security and WS-Interoperability
Elimination or significant reduction of SOA Governance cost
Quick Cloud enabled application development
Industry standard security

 

The power of SOA comes from the fact that it should work from a heterogeneous environment. The power of SOA comes - ONLY if it can work across a heterogeneous environment. SOALIB provides more true SOA functionality across multiple operating environments, than all other SOA providers.

 

As far as SOALIB online is concerned, the Soalib general interface architecture is shown in Figure 1. Referring to this figure, the SOALIB server is the central link to all the external clients, all of which communicate through SOAP messages. These SOAP messages are tied to web services offered by SOALIB. There are presently over 20 web services offered by SOALIB, details of which will be described in the latter sections of this paper. The SOAP transport may be both HTTP or JMS. SOALIB have built in support to connect, synchronize or manipulate upto 24 different databases over the Internet (see Table 1). SOALIB can connect to any on-network database servers directly or out of network (firewalled) database servers through runtime SSL tunnels. These tunnels can be created by SOALIB at execution time and only during the time the database is accessed. All the various client API written in numerous programming languages or technologies(C/C++, Java, .NET, J2ME) are ready to use and easy to learn (see Table 4). These clients connects to the web services and consume them. SOALIB provides plenty of examples to learn these API quickly. When it comes to database connectivity, SOALIB includes the needed JDBC drivers with SOALIB. SOALIB server itself is a easy deploy-able WAR file, which supports major databases.

SOALIB is designed with enhanced security in mind. Not only that SOALIB web services adheres to industry standard WS-Security, it also adds its own security layer to provide additional user level security. SOALIB adheres to the minimum standards compliance to make sure that it is compatible with older standards (see Table 5).

SOALIB web services provide various and diverse functionality. In a particular project, not all web services are required. Each service may be enabled or disabled as needed. SOALIB web services can be divided into a few categories:

 

Core Services
Synchronization and Data Service
Utility Services
Specialized Services

Figure 1: SOALIB General Architecture

 

Integrator of Diverse Operating Environments

SOALIB server sits in between all the connected devices. Once connected,each connected device/application may communicate to the other connected device/application through SOALIB's messaging and peer to peer service. SOALIB also allows peer resources to be shared by other connected devices/applications. As an example, SOALIB server may allow embedded point of sales devices to be connected to databases, or to other embedded devices, other SOA applications, mainframe, and so on.

Soalib clients are not allowed to directly access databases. It has to pass request to SOALIB service, which access the database for the client. From the security point of view, this method adds safety. The server may connect to the databases using SSL tunnels or directly. On the other hand, the clients call the SOALIB web services using either HTTP or HTTPS transport using SOAP (Simple Object Access Protocol) protocol. Normally, a SOALIB client never needs a JDBC driver. All the database connection and database access loads are consumed by the SOALIB server.

Security Features

SOALIB Supports industry standard WS-Security architecture with dual client-server authentication. Runtime SSL Tunnels can be created by the ISecurity service by create private SSL tunnels to databases through firewall. In addition to WS-Security, SOALIB also supports HTTPS authentication creating double protection on the web services through the web. All critical data is stored by SOALIB on the server uses strong encryption. User account handles, which is received when a user successfully logs in is 512 bit in length and this handle is never the same for each login by the same user. A duration of inactivity by the client automatically logs the user out. In addition, to avoid account hacking, SOALIB also provide a user locking, which is triggered when a number of unsuccessful login was tried. The user could only be unlocked by the administrator.

SOALIB also have enhanced connection mode security where connections could be setup as read only, write only or read/write type. In addition, the connection mode can be protected from alteration. In order to hide database name, username, URL, etc., SOALIB offers value aliasing could be used. In value aliasing, the connection could be created with connection values (e.g., database name, username, server name, etc.) aliased to some other displayable value. When the third party sees the connection, it only sees the alias, not the real names.

 

WS-Security Compliant
Public-Private Key Architecture SSL Tunnels
Secure User Authentication
Encrypted Data Storage
Fault Tolerance
512 bit Service Handles
Inactivity Timeout
User Locking
Connection mode security (Read Only, Write Only, Read/Write, Protected, Value Aliasing, etc.)

Figure 2: Runtime Secure Tunneling in SOALIB.

Figure 3: Connection Level Security in SOALIB.

Figure 4: SOALIB's Synchronization Engine.

Synchronization and Data Services Features

SOALIB have a rich set of data synchronization feature which practically covers all popular databases. Data synchronization is mapper based. The mapper basically defines the rule of data type mapping from one table to another. There is no restriction on how the mapper is organized, and therefore, many to many mapping is equally possible. The following are the highlighted features, which will be covered is somewhat details in the following sections.

 

Practically supports all databases (see Table 1)
Supports Text and Binary flat files with field assignment and parsing
Arbitrary Data Type Mapping
Supports One-To-One, One-To-Many, Many-To-One, Many-To-Many Mapping
Supports Old PC databases: Foxbase, Dbase, etc.
Instance based incremental bi-directional Data Synchronization engine
Near Real-Time data synchronization
Unlimited Delta Engine Support: Shipped with three delta engines
Sync engine may specify which delta engine to use
Scheduled Synchronization: Scheduler with 1 second resolution
Client Available in-Java, J2ME, C#, C++ and C
Peer-to-Peer,Peer-to-Host or Host-to-Host Synchronization
Fault Tolerance Modes: Rollback on Failure and Retry on Failure
Batch Synchronization Mode
Runtime Data Mixing and Translation: Can perform any data-type Transformation
Asynchronous synchronization modes

2.2.1 Types of Mapping

SOALIB mapper can map source and target tables in all four possible ways: one-to-one, one-to-many, many-to-one and many-to-many. SOALIB automatically checks for mapper consistency. If the mapper is found to be consistent, the sync engine can perform the proper transformation during sync time. The transformation is as accurate as practically possible. The mapper can be completely arbitrary. It allows same data type and mixed data type mapping. For example, the mapper can map CHAR to CHAR as well as CHAR to BLOB mapping and the sync engine will provide automatic transformation at sync time.

One to one mapping is the case when the source data type maps into a single target data type. In Figure 5, columns of the source table ERPDB.Customers maps to a single target table ERPDB_BK.Customers. This is usually the most common kind of mapping is also the mapping that can be used to replicate the source tables..

In Figure 6, we discussed the case of one to many mapping in which the source table is mapped to two different tables, which can be on different database or the same database. In fact, the table can map to itself. One thing to note here is that the mapping between ERPDB.Customers and BANKDB.NewLeads does not have the same data types. SOALIB will provide the proper transformation at sync time.

In Figure 7, many to one relationship is shown. This figure merges the two tables into a single table, e.g., the ERPDB.Customers and PROCDB.Orders merges into a single target table named BANKDB.Customers. Here is one critical thing to observe. Notice the datatype of Orders.OrderID which maps to Customers.OrderID (target), these two are different type. SOALIB provides the required transformation from CHAR to INT only if CHAR can be transformed into INT. NULL values will be considered as 0 (Zero). Also, the second mapping from Orders.OrderCost ® Customers.ItemID (a DOUBLE to CHAR mapping) will also be provided during transformation. Many to many mapping is shown in ,Figure 8. This can be thought of as the combination of one to many and many to one.

2.2.2 Text and Binary Files

SOALIB also supports Text and Binary files as database. If the text and binary file data is stored in an organized way such that the data organization could be defined as a grammar of data structure, similar to struct in C, then that grammar may be passed to the SOALIB to parse the file. Text and binary files may also be synced with any other databases bi-directionally. That means, binary data can be generated from database and vice versa. This approach may also be used to store text or binary files into database tables.

As a quick example to show how the grammar look like consider the One-to-one mapping example's Customers table. If the text file we plan to generate should store each row of data as follows:

Customer ID: hparton
Customer Name: Holly Parton
Customer Address: 12 23th Street SW, NY

then the grammar will look like:

Customer ID: %{CustomerID VARCHAR(64);}\n
Customer Name: %{CustomerName VARCHAR(128);}\n
Customer Address: %{CustomerAddress VARCHAR(128);}\n
\n

where the portions enclosed by %{...} is the portion that is replaced by that particular data. Same grammar can be used for binary file except that the numeric values and arrays like BLOBs will be stored as binary format instead of in text format.

2.2.3 Old Database Format Support

SOALIB supports old database formats like Foxbase, Dbase, etc. which makes porting older databases ported to modern databases easily. Like any other databases, this sync is also bi-directional as well as mapper based.

2.2.4 Incremental Change Capture Engine

If there were no change capture engine, entire database is required to be synced from source to target. But, SOALIB comes with a number of change capture engine where the engine may be specified at sync time. SOALIB calls it the Delta Engine. SOALIB's default delta engine is checksum engine, which determines change based on database checksum for each specific . The second kind of delta engine is trigger engine, which creates database triggers on source tables to create trigger based delta. Upon each update, insert or delete a trigger is generated, which is reported to the delta engine.The third kind of delta engine is the timestamp engine, which works similar to the trigger engine, but does not create new table. Instead, it inserts timestamps on the source table and detects change based on the timestamps. SOALIB is continuously improving delta engine technologies and new delta engines will also be announced in the future.

2.5 Instance Based Synchronization

SOALIB is an instance based sync engine. Unlimited synchronization could be instantiated from any source to any target in parallel. Instances are very useful for paralleling synchronization when a very large database is required to be synced. Consider the case when a database have 1000 tables, syncing tables one after another sequentially will lead to huge amount of time as opposed to creating 100 instances of sync (say, 10 tables per instance) for each source to each target, provided there is enough network bandwidth and server resources (memory, harddisk, etc.) available.

2.2.6 Synchronization Scheduling

Synchronization can be done periodically at given intervals, at a particular time, after a particular time, or at any combination. For example, if you would like to sync on 31 December 2009, that can be set in SOALIB and as long as the server is running on that particular date, SOALIB will begin the sync.

2.2.7 Fault Tolerance

SOALIB have two fault tolerance modes: (1) Rollback on Failure, (2) Retry on Failure. The first failure mode says to rollback all data that has been synced. This mode will only work to databases that have rollback support. Most advanced databases have rollback capabilities. But old file based databases like Dbase, FoxBase, Flat files, and binary files do not have this feature. The second mode is Retry on Failure, which work on any database. In this mode, the sync operation is retried if a failure happens

2.2.8 Automatic Referential Integrity Check

SOALIB performs automatic referential integrity check at sync time. The independent tables are populated before the dependent tables making sync run smoothly. Also, if a set of table is tide by referential integrity rules, the tables tied by this rule are included in a single mapper. This ensure that a single sync covers all the referential tables.

2.2.9 Batch Synchronization

A batch synchronization is a set of sync operation in sequence. This is useful when multiple database (or same database) is required to be synced one after another. Each sync operation in a batch is considered as independent unit and therefore, if a batch fails in anywhere, the batch have to be ran again because there will not be any rollback. A batch operation is always sequential and not an atomic operation.

2.2.10 Data Mixing

SOALIB may be used to perform custom data conversion by converting multiple columns with multiple datatypes. As an example, mixing may be used to determine the price of a product (unit price * quantity) given the unit price and quantity. This computation is done in the mixing operation. Similarly, concatenation, trimming, etc operations can also be done. Complex operation can also be done in this way by adding proper Java classes. SOALIB data mixing is based on writing custom Java classes and referencing the class at runtime during sync operation.

2.2.11 Peer to Peer Synchronization

While host-to-host and peer-to-host are the two common synchronization kind typically used in traditional synchronization software, SOALIB supports peer-to-peer synchronization format in addition to other two. Peer-to-peer synchronization can be performed by establishing tunnels (SOALIB provides the necessary tools) through SOALIB. Using HTTP Tunnel, peer-to-peer synchronization may be performed between two PC or mobile devices.

2.3 Messaging Features

SOALIB, through Messaging service, to communicate at any combination of the following:

 

Mobile Phone
PC
Mainframes
Java Applications
.NET Applications

SOALIB product is shipped with examples on inter-platform communication. Application to application communication closes the gap between various kind of application development platforms allowing global application development, data sharing, and communication. Other messaging feature include:

 

JMS to JMS Messaging
SOALIB to JMS Messaging
SOALIB to SOALIB Messaging

Supporting these wide combination of messaging further enhances application to application communication. SOALIB examples include two source code two interesting example in which one demonstrate the use of SOALIB to move a robotic arm and the second is Mobile to PC video conferencing.

2.4 Other Features

SOALIB have a few additional features as described below:

 

Remote File Transfer-see IFile-File Service
Mail Management-see IMail-Mail Service
Update Management-see IUpdate-Update Service
Payment Engine-see IPayment-Payment Service
Load Balancing-see IBalance-Balance Service
Reporting-see IReport-Report Service
Networking using Socket-see ISocket-Socket Service

Each of the above features is covered under related services as described above.

3 Core Services

Core web services are the necessary components of SOALIB. All other service categories depend on Core services. The following is the short description of each Core services.

Core Services

IAccount

IAdmin

IConnection

ISecurity

ISoalib

IErrorMessages

IUpdate

ISchedule

Synchronization
and Data Services

IDatabaseSync

IMapper

IMixer

IQuery

Utility Services

IBalance

IBatch

IFile

IReport

ISocket

IMessage

IMail


 

Integrated

Services

IPayment


 


 


 

3.1 IAccount-Account Service

Account Service is responsible for connecting users to the web service. This is the first step in accessing and using the web service. The user account must have been created using Admin Service (IAdmin). Soalib also has a built in system administrator account named 'system'. Using this service, user can set account related parameters like password, security questions/answers, etc. Account Service returns a 512 bit account handle, which returns different handle at different time.

3.2 IAdmin-Admin Service

Admin Service is used to administer user accounts. It's used to perform operations like creating or deleting users, resetting user passwords, changing user privilege, and so on. Admin Service can only be used by a user with administrative privilege. Soalib has a system administrator user named 'system', who can also use this service. In addition to user account manipulation, Admin Service is also responsible for limited Runtime Governance like limiting access to certain service use to users, memory and disk space limitation, etc.

3.3 IConnection – Connection Service

Connection Service creates connectivity settings for various operations like database connection, remote server connections, JMS Connection, tunnels, etc. These connections are stored in encrypted form in the server. These connection parameters are later referenced during data synchronization, remote access, or for other connection settings by other Soalib web services.

3.4 ISecurity – Security Service

Security Service is used to create SSL tunnels at runtime and route them to appropriate ports. Once the tunnels are created, they can be used by other Soalib web services. This service can also be used to generate server or client certificates and install them in the server keystores. This service makes it easy to manage servers and transferring certificates from server to clients. When WS-Security is used, the client must have a copy of the public key from the server in order to encrypt the data before sending it to the server and the server should also must have the public key of the client in order to encrypt the data sent to the client. ISecurity service is also used for that purpose. SOALIB supports two way authentication.

3.5 ISoalib – Soalib Service

Soalib Service is an inquiry service for Soalib users specific service information. There is no authentication required to use Soalib service. This service can be used to see what other services are available, the expiration date of the license, the server time, and other Soalib service specific information.

3.6 IErrorMessages – ErrorMessages Service

ErrorMessages Service is used to obtain the description of an error message. This service is an open service and may be used by anyone. There is no user authentication required. Typically, a client will load the error code and corresponding error messages in memory by calling this service. SOALIB have many categories of error messages, and when an error ID is generated, this message provides the explanation to the error ID.

3.7 IUpdate – Update Service

Update Service is a service used to update Soalib client and/or server versions automatically. This service has a few ways of updating other user defined files between the server and the client. Update service keeps the difference between two vesions and the files that difference refer to. SOALIB products are updated using this service as well as other users may also use this service to have their own software's update mechanism through the user of this service.

3.8 ISchedule – Schedule Service

Schedule Service is used to create schedules. Schedules are created and saved for use by Soalib services. These schedules are not tied to any particular service but use general XML formatted schedule specifications which are used by Data Synchronization or other services. Schedules may be created with a resolution of 1 second to user defined dates. A large number of schedule service options are available that enable users to make a schedule periodic, delayed, at a particular date, or any combination of these.

4 Synchronization and Data Services

Synchronization and Data services perform the job of heterogeneous bi-directional synchronization as well heterogeneous data access.

4.1 IDatabaseSync-Database Synchronization Service

DatabaseSync Service is one of the most important service of Soalib. It uses most of the Core services and also some of the other Utility services to perform database synchronization. This service can also use the Schedule service to set- up a periodic synchronization schedule. The DatabaseSync Service has many methods to make the database sync controllable and fault tolerant.

4.2 IMapper-Mapper Service

Mapper Service is used to create custom mapping of tables and columns from a source database to the target database. A mapper generated by this service is universal and does not depend on the kind of database used as the source and target database. For example, if a mapper is used to map Oracle to a Postgres database, then the same mapper may be used to map Mysql to Sql Server database as long as the source and target database have the necessary columns and metadata type as defined in the map.

4.3 IQuery-Query Service

Query Service is used to send database queries and data retrieval to a remotely connected database. The databases are never directly connected to the client itself, instead, the client calls this service to get database information by passing SQL statements. This service is used if direct SQL manipulation is needed on databases. Data can also be inserted or merged to an existing table using this service.

4.4 IMixer-Mixer Service

Mixer Service is used to mix source data with other user metadata type during synchronization time. This is useful when the user would like to have more control during data synchronization and data transformation. Mixer service can be customized by passing Java classes, which defines the mixing operation, at runtime to the server. Mixing can be chained so that the result of the previous mixer may be passed to the subsequent mixers.

5 Utility Services

Utility services are non-essential option services which could be used on need basis. Some of these utility services are very useful, e.g., IFile, IBalance, IBatch, etc.

5.1 IBalance-Balance Service

Balance Service is responsible for load balancing if multiple Soalib servers are used. This service may be used to distribute the load to other Soalib services when the balancing is properly setup using this service. This service is useful when multiple Soalib servers are used to interact with each other to process a large load.

5.2 IBatch-Batch Service

Batch Service is used to perform batch operation where the batch is defined by an XML file. Once the batch is defined, it may be referenced to a Batchable service (e.g., IDatabaseSync) to perform a batch operation. For example, in batch data synchronization, this service is used to define the batch of a series of sync operation one after another.

5.3 IFile-File Service

File Service is used for file manipulation, file upload/download, read/write and so on. This service is used to save/load important client files or data into the Soalib server for later retrieval. When file database is used, synchronization with that database with a server based database may be performed by first moving that file to the server and then performing the sync locally.

5.4 IReport-Report Service

Report Service is used to generate HTML or PDF reports from XML. Presently, this method may generate reports of Connection, Schedule, Mapper, Database, Security, etc. This service is useful to get information of objects viewable as HTML or PDF, which may later be saved or printed.

 

Object reporting in HTML and PDF
Database Reporting
Custom Reporting

5.5 ISocket-Socket Service

Socket Service is responsible for creating sockets on the server so that multiple clients may connect to that socket and may be able to communicate directly. The advantage of this service over IMessage service is that no XML transformation is required and data may be read or written directly to the client socket. Socket service is used in raw data transmission where speed is important. Audio/Video transmission should use Socket service.

5.6 IMessage-Message Service

Message Service is used for peer to peer messaging. The messages may have arbitrary XML formatted data and may be of any size. This service may be used to send messages to another Soalib user, external message queues, JMS, etc.

 

Writes to external message queue: JMS support as well as XML messaging
Instant peer to peer messaging within SOALIB users

5.7 IMail-Mail Service

Mail Service is POP, SMTP and IMAP secure mail management service is used to perform batch mailing, scheduled mail delivery and retrieval. This service is for users of Soalib web services to centralize all email retrieval and delivery. It may also be used to schedule mail delivery as in email campaigns and news letters.

6 Integrated Services

Integrated services are those services that relies on other external service in which Soalib have no control. For example, payment processing may be one such service.

6.1 IPayment-Payment Service

Payment Service is a payment processing service for credit card charges, purchases or refunds. The present implementation is based on the Authorize.NET gateway, and Paypal & Google Checkout implementation is on its way. The main advantage of Payment service is that it uses a single service to operate on all the possible payment gateways and providers.

7 Use Cases

In the following sections, we will go over the use cases of SOALIB. Each of the discussion topic have its own use and cases.

7.1 Elimination or Reduction of SOA Governance Cost

A SOA project is associated with establishment of SOA governance during design, test and execution stage of SOA based software. Typically, the least expensive SOA governance framework will cost hundreds of thousands to a full fledged implementation could lead to multi-million dollars. This cost is continuous, meaning that in a typical SOA budget, SOA Governance cost must make a significant part. While it is necessary to have SOA Governance during the entire life cycle of a SOA project, but governances is only required if there is a SOA project in the company. Design time governance deals with control of SOA distributed architecture based software design principles like contract design, modeling, code source control, team management, documents management, service discovery, deployment, publication, testing, provisioning, versioning, orchestration,standardization, etc. These all are necessary elements of design time governance but it is all not required when SOA based library like SOALIB is used.

7.1.1 Case-Elimination or Reduction of Governance Components

The following figure shows a sub part of a typical SOA Governance components. By adopting SOALIB libraries, one may eliminate the components marked with hashed boxes. The elimination is due to the reason because SOALIB already have followed all these governance to develop SOALIB and the user is not required to redo the same. However, if the user of SOALIB is applying the libraries in their own SOA products, then the elimination only applies to the overlapping components of the SOA project in which SOALIB libraries are applied.

For example, if SOALIB is used to design a banking software where as SOALIB is only used on the disaster recovery portion of it, then SOA governance elimination will apply only to the disaster recovery portion of the entire SOA project.

7.1.2 Case-Cost Savings in Runtime Governance

SOALIB have built in Runtime Governance implemented inside the library. SOALIB is based on users who consume the services. Each user may be given access to different service permission. For example, SOALIB may be setup for user1 to consume 9 defined services, while for user2 12 defined services. In addition, users disk-space usage, memory usage, instance limits and various other parameters may be controlled. Using this built-in runtime governance, it is not necessary to implement runtime governance on the portion of the project where SOALIB is used.

7.1.3 Case-Elimination or Reduction of Test Cost

SOA testing is one of the most time consuming and expensive portion of the entire SOA development. The test cost increase exponentially as more operating environment is included in the SOA solution. Complete exhaustive test require server provisioning, high speed Internet connectivity, virtual machine setup, and other hardware. Associated with testing is test automation, development and coding, test center or equipment management, test engineers and managers and many other resources. By adopting SOALIB, test cost is eliminated for the portion of the project where the SOALIB library features are reused. As an example, in a typical banking software, which is undergoing SOA conversion may use SOALIB to perform synchronization and any development related to this segment of the project would not required extensive Unit SOA testing. While, integration testing must be conducted, but Unit Testing on this particular project segment could be eliminated. This means, hundreds of thousands of dollars associated with SOA testing could be completely eliminated while integration testing is the only portion that is kept.

7.1.4 Case-SOA Learning Curve Complexities

Historically, SOA based applications were designed without much thought and planning leading to failure for some implementations. It relies on employees getting the right training and support to educate themselves on various SOA related technologies. By using existing services offered by SOALIB, which has gone through 5 years of research and development and extensive testing, one may save considerable amount of time from reinventing the wheel. Developing the software with the same functionality will at-least take the same amount of time. By adopting SOALIB, go-to-market with the new SOA or non-SOA software could be quicker.

To show how easy to use SOALIB libraries, let us show three examples from each popular programming languages. For example, the following few lines binds and calls ISoalib.getInfo() method of Soalib services in Java.

SERVICE_URL = location of the WSDL of a running service
ProxyBinding pbd = new ProxyBinding(SERVICE_URL);
pbd.setEncoding(ProxyBinding.WSDL_DOCUMENT_LITERAL);
ISoalib soalib = (ISoalib)pbd.getStubInstance("Soalib", ISoalib.class, false);
System.out.println(soalib.getInfo());

The following few lines will bind in C# .NET for the same service method,

SERVICE_URL = location of the WSDL of a running service
ProxyBinding pbd = new ProxyBinding();
pbd.URL = SERVICE_URL;
Soalib isoalib = (Soalib)pbd.GetInstance("Soalib");
String info = isoalib.getInfo();
Console.WriteLine(info);

The following few lines will bind in C for the same service method.

SERVICE_URL = location of the WSDL of a running serviceISoalib_INIT(SERVICE_URL);printf("INFO:%s\n",ISoalib_getInfo());
ISoalib_DESTROY();

SOALIB is shipped with all the needed libraries so that no stubs have to be built by the users.

7.2 SOALIB in Cloud Computing

Building SOA applications for cloud computing is usually the goal of present day corporations. SOALIB is cloud ready. SOALIB Online is the online version of SOALIB which is already hosted by Soalib for use over the Internet. Application developers may consume these services from SOALIB Online and build applications faster.

7.2.1 Case-Multi Server Load Balancing

SOALIB have built in load balancers. By utilizing multiple SOALIB into the same site and then each such site around multiple servers across the Internet, any application relying on SOALIB services will have high availability.

Figure 10: Multi SOALIB load balancing.

7.2.2 Case-Heterogeneous bi-directional Synchronization over the Cloud

Syncing data from heterogeneous external sources (laptops, mobile, etc.) to a central server is where SOALIB finds a strong position. By adding periodicity to the sync operation in bi-directional mode, when any data is entered on a client machine, it syncs with the central server as well as all connected client machines. This operation leads to the solution that the data entered into the first client machine is available to all the other connected client machines in seconds and at the same time the central database is kept synced with client machines at all times. The so called many-to-many heterogeneous incremental bi-directional synchronization can be easily performed by SOALIB. Security is of primary importance in this kind of heterogeneous sync operation and SOALIB ensures all of the following:

 

SOALIB meets WS-Security 1.0, HTTPS 1.1 and 128 bit strong encryption.
SOALIB operates through IBM Datapower.
SOALIB supports encrypted data storage and encrypted connection information.
SOALIB can sync at near real-time within a fraction of a second.
SOALIB can perform cross database synchronization bi-directionally.
SOALIB may be used to split, merge or migrate multi-vendor databases.

Figure 11 Shows the case of bi-directional data synchronization across multi-vendor databases and Figure 20 shows the data merge operation from two databases into one. The reverse of this operation in the opposite direction is the split operation, which can also be performed.

7.2.3 Case – Heterogeneous Applications Development

Figure 11: Bidirectional heterogeneous database synchronization on cross platforms.

If an enterprise project is composed of diverse platforms, programming languages and operating environments as shown in Figure 13, SOALIB is suitable in those cases when

application to application communication is needed and multiple programming language support is essential. As shown in the figure, each application under different platforms may be able to communicate and synchronize across systems via SOALIB.

Figure 12: Asynchronous uni-directional data synchronization and merging.

Figure 13: SOALIB's connectivity and multi-platform support.

7.2.4 Case-Global Data Sharing over the Cloud

SOALIB's flexible data mapping feature may be used to expose portions of the database globally sharable. SOALIB connection can be made read-only so that these database tables could not be written into. In addition, all connection parameters could be made hidden from the data user making the data sharing operation very secure.

7.3 Designing SOA Layer by Layer

In projects which have multiple layers of SOA services, SOALIB may be one of the layers.

7.3.1 Case-Typical ERP Systems

In a design of ERP system, SOALIB may be one of the integrable services along with other services like TimeSheet and Calendar. These services together will make up the final product.

Figure 14: SOALIB in an ERP systems example.

 

7.4 Embedded Systems to Mainframes

SOALIB works on embedded systems to all the way through the mainframe. SOALIB server services may be deployed in z/OS operating systems and the clients may also be used from the mainframe. SOALIB provide J2ME mobile client API for SOALIB making Mobile phone applications to consume SOALIB services. Client API is also available in C/C++ making SOALIB client for embedded systems use. SOALIB also offers GSOALIB hardware, which is a small form factor single board computer loaded with full featured SOALIB. SOALIB comes with standard Java library for integration with Java and Web Applications. Finally, SOALIB is also .NET enabled as it also provides .NET libraries to consume SOALIB services.

7.4.1 Case-Write Once Use Anywhere

Wouldn't it be nice to write an application just once and use it in various platforms? On the client side, you just need to choose a language which you will use for your client. Once that is decided, SOALIB based client application will be a write once use anywhere application. This significantly reduces cost of development of multiple applications and maintenance needs.

7.4.2 Case-Multiple Operating Environment Support

SOALIB server is designed to operate on multiple operating environment. SOALIB is Java based and work on all Operating System which have Java 1.5 installed. In addition, SOALIB also supports all major Java Application Servers. This reduces maintenance cost of using SOALIB based applications.

7.4.3 Case-Server to Server Porting

As servers become more and more powerful, SOALIB can be ported over or upgraded to a more powerful server regardless of Operating System and Processor count. This makes Java based technologies more portable when it comes to porting and upgrading servers.

7.5 Standardization

It is standardization, which makes SOA based Web Services attractive. Unless standardization were enforced, Web Services would not have been interoperable. SOALIB maintains all major WS-* standards making it interoperable with other Web Services. Presently, SOALIB is compatible with WS-I and WS-Security Standards and ensures that the SOALIB services is portable.

7.5.1 Case-Inter-company Services

Being standardized, SOALIB services offered on one company may be shared by web services written by another company. Therefore, if Company Electra is using SOALIB web services and Company Florixa being a business partner of Electra would like to share some of their services could write their own Web Services which consumes SOALIB web services exposed by Electra. SOALIB being standardized, this approach can be easily done without any difficulty.

Figure 15: Intra-company data sharing.

7.6 Integrable Global Applications

SOALIB based applications are globally integrable. That means, clients written in Java, J2ME, C/C++ and .NET languages can communicate with each other.

7.6.1 Case-Sending Mobile Phone Data to .NET Applications

SOALIB may be used as the service middleware to communicate between Mobile Phone's J2ME applications and .NET base applications. .NET applications, when running may send data to the mobile phone and vice versa. This is truly helpful when is a mobile version of the same application. The mobile version can very easily communicate with the .NET application through SOALIB. This applies to any of the other SOALIB supported client programming languages C/C++ and Java.

7.6.2 Case – Mobile data synchronization

Access and Synchronization of mobile data to the central database or file server for backup, restoration or reporting may be an important application and use of SOALIB services as shown in Figure 17. Mobile devices and handhelds may query databases and build applications where accessing central database is essential.

 

7.6.3 Case - Embedded systems database access

Embedded system may be able to access, retrieve or query database through SOALIB services as shown in Figure 18. A more integrated use is shown in Figure 19, where third party applications and other enterprise applications are also able to communicate with embedded systems directly through SOALIB services.

7.6.4 Case – Advanced security and tunneling

Secure tunneling built into SOALIB could be used to bypass firewalls and access scarce resources like mainframes third part services in a secure manner. Secure tunnels may also be used just about anywhere to create a secure tunnel where security is the most important factor.

7.7 GSOALIB – The embedded version of Soalib

GSOALIB, or Green SOALIB, is the embedded version of SOALIB which is designed to run under Java 1.5 in an embedded PC using an Embedded operating system. Presently, GSOALIB have demoed on a AMD Geode processor with 10GB Flash and 1 GB RAM. The full configuration is as follows:

Packed in a 5”x5”x1.5” Box
Low Power Consumption
Contains Both Server and Client
Starting Under $1000 – Introductory Price
Power Up and Ready
100 Mbps Ethernet
Built-in SOA Services
User Feature Addition

GSOALIB is designed for use in remote or portable applications where additional hardware may be used for the complete solution. Typically application will use GSOALIB and supporting software and hardware around it to build another portable device or application. Main features are:

Built-in Zero Maintenance SOA Services
10 Client Simultaneous Connectivity
Act as SOALIB Client
Act as SOALIB Server
Programmable Hardware
Allows Database Connectivity
Allows Database Synchronization
Allows Peer to Peer Messaging
JMS Messaging

GSOALIB may contain all the services offered by SOALIB or a subset of the services based on application. GSOALIB is only available on OEM Contract and on project evaluation basis. Various licensing model exists for GSOALIB. Interested party is required to contact Soalib for further information.

GSOALIB presently supports the following applications:



8 About

8.1 About Soalib, Inc

Soalib Inc. has developed a suite of SOA libraries that allow companies to develop SOA applications more efficiently, more effectively and over a much shorter time-frame than any other SOA technology. These pre-built libraries are designed to work across a wide range of operating systems, application servers, client environments, programming languages, mobile devices, security environments and databases, collectively known as Operating Environments. Soalib products have been developed with a totally platform agnostic approach for the true integration of multiple programming languages, diverse technologies, disparate databases and heterogeneous legacy platforms.


Due to various complexities involved in service design, SOA development can not be taken lightly. Soalib's SOALIB pre-built services products, completely eliminates the development and test period needed to duplicate these functionality from scratch. Please contact Soalib for more information on how to best design, test and develop your SOA services in the most cost effective fashion.

8.2 About the Author

Soalib is the brainchild of Ejaz Jamil, the Chief Architect of Soalib Incorporated. Since 2004,Ejaz and his team have developed SOA services with a focus on building tested libraries which work from embedded systems to mainframes. Ejaz brings years of embedded systems experience with Texas Instruments, where he worked as an Embedded System Engineer and Mathworks, Inc, the Natick based simulation software company, where he developed complex products for the embedded systems industry. Back in 2003 Ejaz understood that the True power of SOA comes from the integration of real-time embedded systems devices with all other technology platforms. Soalib's core product, SOALIB® solves this heterogeneous integration problem for companies embarking on global projects using standards based SOA. Ejaz Jamil has a Masters degree in Electrical Engineering from University of Colorado at Boulder and MBA from University of Texas at Dallas. Ejaz can be reached at This email address is being protected from spambots. You need JavaScript enabled to view it. or via telephone +1-508-460-1116.

 

Contact Us

Scan Your Mobile Phone

About Us

Since 2007 SOALIB Incorporated has provided Service Oriented Architecture solutions to the clients with use of SOALIB. SOALIB is a set of web services available in a cloud as well as in the form of Web Application. SOALIB makes it seemless to integrate Mobile, PCs, Embedded Systems through a common set of API. Soalib's two android apps GhosTrack and WorkDaddy, both are enterprise level application embracing the SOALIB technology. Use SOALIB in your apps and integrate with the rest of the world.


Connect With Us

  GhosTrack is an ideal application to locate the Geographical Coordinate of another Android Device using SMS. So, there is an Admin phone (which wants to track other phones) and the target phones (which will be tracked). Admin just need the phone numbers of these target phones to track them.

  SOALIB Server is now version 1.0.6. Advanced SOAP based tunneling allows sync through HTTP. Previously, You need to download new Soasync to bind to the new version.SOALIB is a library of 20 web services. SOALIB Online is where these web services are hosted.

 This app calculates attendance based on NFC/RFID cards/chips. Subscriber needs to create and register user. Each user can have several cards. Once the registration is completed the user can check in or out by simply touching that card. Also the user can create an event and manage it by the help of this application.

JoomShaper