| By David Brandow | Article Rating: |
|
| December 12, 2006 02:00 PM EST | Reads: |
7,999 |
Sybase's exciting new offering, WorkSpace, offers users an enormous amount of functionality in a unified design and development environment. From enterprise modeling, database development, Web application development, services-oriented development and orchestration to mobile development, it presents an extremely comprehensive set of tooling capabilities. Since it isn't possible do the entire tool justice in a single article, let's focus just on service development.
Before we start to talk about development services, let's first define what we mean by a service. The term service, at least in the context used here, comes from Service Oriented Architecture (SOA). SOA has five fundamental characteristics that can informally be described as:
- Loosely coupled - The individual parts, or services, can be changed independently of each other; changing one service doesn't affect any other services.
- Coarse-grained - Services interact with each other using high-level, business-driven interfaces rather than low-level, implementation-driven interfaces.
- Standards-based - By using standards-based practices, SOA promotes reuse and lowers the cost of modification and integration.
- Business-oriented - By abstracting away implementation details from the overall design, developers can create and modify processes more agilely.
- Patterns-based - SOA patterns have been designed for implementing solutions using services, making development easier and more powerful. (See Figure 1)
Now that we have the context, we can finally establish a definition of the term "service." Simply put, services are interoperable components that have platform-independent, language-independent, and operating-system-independent contracts or interfaces. That rather simple idea contains an incredible amount of flexibility. It means that you can implement services using virtually any technology, J2EE, .NET, PowerBuilder, CORBA, C++, and have them work hand in hand. This lets you choose whatever technology is most appropriate, and you can make that decision for each service without affecting the rest of the application, and even change implementations without causing a chain reaction of side effects. It also means that when you're interacting with these services, their implementation details don't affect you and, in fact, you probably won't even be aware of, or interested in, how they're implemented. Furthermore, you aren't even restricted to a specific means of interacting with those services; you can use SOAP over HTTP, which is the most common scenario, but you can also use an XML protocol over a JMS messaging transport, or any one of a number of different transport-protocol combinations.
Services in WorkSpace
Obviously WorkSpace can't, in its first few releases at least, offer every possible kind of implementation choice for services. So what kinds of services does it offer? Glad you asked:
- Database services use database stored procedures and/or SQL statements as their implementation, abstracting the user from low-level database APIs. Database services in WorkSpace are also simple to create, just browse through the database and select the stored procedures and/or specify the SQL statements you want to expose, giving you complex database interaction and result set handling with no coding required.
- SOAP services use an external Web Service as their implementation, broadening the scope of possible contributions to your application immensely. It's worth noting at this juncture that PowerBuilder components can be exposed as Web Services through EAServer, which provides the PowerBuilder developer access to PowerBuilder components in a SOA such as the one WorkSpace provides.
- EJB services use J2EE Enterprise Java Beans (EJBs) as their implementation, abstracting the user from low-level J2EE programming APIs. EJB Services in WorkSpace are simplicity itself to create, just browse through the application server, find the EJB you want to expose as a service, and then specify which methods you want exposed, no coding required.
- Message services can use a variety of messaging-based systems as their implementation, from Java Message Service (JMS) providers to e-mail servers to flat files to file systems. Again, with no coding, you enable sending and receiving of messages, presented in a business-level interface.
- Transformation services supply an advanced, complex, efficient data transformation of XML and non-XML data, letting you handle various data format differences and enhancing your ability to achieve loose coupling.
- Java services use Java code as their implementation. Java services, by their very definition, have an extremely flexible implementation and can be used to implement many different kinds of interfaces. Java services, along with BP services, let you easily invoke other services and provide complex business logic in a familiar development environment.
- Business Process services use Business Process Modeling Notation (BPMN) at design-time and Business Process Execution Language (BPEL) at runtime for their implementation. These services let the user quickly develop the business logic in a code-less, graphical environment, while having access to powerful features like fault handling, compensation support, transactions, business activity monitoring, alerts, and business process management. Business Process services can also invoke other services and provide an excellent place to supply the logic that ties disparate services into a cohesive set of business logic.
The first thing you need to do before creating a database service is specify how to connect to the underlying database. To do this, you create a Connection Profile of the Sybase ASA type. Its properties look like this:
And, in this case, they were defaulted well enough that all we had to do was enter the name Database in the creation wizard.
After connecting to our database, we can see the list of stored procedures we're looking for:
Published December 12, 2006 Reads 7,999
Copyright © 2006 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By David Brandow
David Brandow, a software engineer at Sybase, Inc., has been been a key developer on Power++, PowerJ, EAServer, WorkSpace and SUP. David obtained a BMath from the University of Waterloo.
- SQL Anywhere Server and AJAX
- PowerBuilder Top Feature Picks
- The Difference Between Web Hosting and Cloud Computing
- PowerBuilder 12 and .NET
- Sybase CTO to Speak at 4th International Cloud Computing Expo
- Migrating Legacy Client/Server PowerBuilder Apps
- Why SOA Needs Cloud Computing - Part 1
- PowerDesigner 15: Expanding Data Modeling into Your Enterprise
- Five Reasons to Choose a Private Cloud
- PowerBuilder and .NET: Development Strategy
- SQL Anywhere Server and AJAX
- PowerBuilder Top Feature Picks
- The Difference Between Web Hosting and Cloud Computing
- PowerBuilder 12 and .NET
- Sybase CTO to Speak at 4th International Cloud Computing Expo
- SYS-CON's iPhone Developer Summit Day One ROCKS
- A Review of Key PDF and Font Concepts
- Migrating Legacy Client/Server PowerBuilder Apps
- New Features in PowerBuilder 11.5
- New Features in PowerBuilder 11.5
- Where Are RIA Technologies Headed in 2008?
- PowerBuilder History - How Did It Evolve?
- Custom Common Dialogs Using SetWindowsHookEx
- DDDW Tips and Tricks
- OLE - Extending the Capabilities of PowerBuilder
- DataWindow.NET How To: Data Entry Form
- Book Excerpt: Sybase Adaptive Server Anywhere
- Sybase ASE 12.5 Performance and Tuning
- Working with SOA & Web Services in PowerBuilder
- Office 2003 Toolbar: A New Look For Your Old PowerBuilder App


































