Interacting with Info*Engine
Initiating an interaction with Info*Engine can be accomplished by using one or more of the following:
JavaServer Pages (JSP)
Custom external Java applications
Simple Object Access Protocol (SOAP) web service
Java Message Service (JMS)
External applications processing XML over HTTP (or HTTPS)
The following diagram shows how Info*Engine components and other customer software components can interact to execute Info*Engine code:
Info*Engine code consists of Java classes that are accessed through the Info*Engine API. The API is available through the SAK and externalizes predefined functions called webjects and tasks. Webjects and tasks can be easily instantiated and invoked as Java objects from a Java application or directly from other Info*Engine tasks (stored as text files).
The following sections provide more detail about how to use the Info*Engine components with your software.
JavaServer Pages
The installation process guides you through a procedure that deploys Info*Engine as a web application. Going through the installation process sets up your web server and its servlet engine to identify Info*Engine requests and pass those requests on to Info*Engine components for processing. This sets up your Info*Engine environment so that the requests from web browsers to execute JSP and HTML pages are processed correctly.
The following diagram shows the relationships among the components that process web browser requests for JSP pages:
This diagram shows the components that are used when a request specifies that Info*Engine execute a JSP page. By default, Info*Engine and web server configuration specifies that JSP pages are processed in the JSP engine of the Tomcat servlet engine installed within the Windchill Method Server. The JSP engine creates an instance of the SAK, which is then used to execute the Info*Engine-specific code on the page. For example, if a user clicks a link or uses a URL in a browser window that serves as a JSP request for information from Info*Engine, the JSP engine and the SAK work together to manage the request.
The SAK processes the request and, as needed, connects to specialized Info*Engine adapters that communicate with external applications such as Oracle databases, PDM systems, various legacy systems, and ERP systems. After the requested information is obtained from the external applications, the process reverses itself and ultimately displays information in the user’s browser window.
External Custom Java Applications
By coding a custom application in Java, you can have quick and easy access to Info*Engine without the added complexity of a web server. By using the API defined in the SAK, you can execute Info*Engine webjects, tasks, and other Info*Engine code in the Java Virtual Machine (JVM) where the application resides.
The following diagram shows the SAK and adapter classes being used in the application to access data in a remote database.
Within a Java application, you also have the flexibility of executing Info*Engine tasks that are maintained outside of the application. An Info*Engine task consists of a set of webjects and surrounding code that supports the processing of the webjects. These tasks can then be processed either in the JVM of any Info*Engine server or in the JVM of the application.
The following diagram shows the Info*Engine components that are used when an application executes a task in an Info*Engine server. In this case the application requests that a task be executed in the server that accesses data in a remote database.
Simple Object Access Protocol (SOAP) Web Service
By coding Info*Engine tasks and registering command delegates for them together under a common type identifier, you can use Info*Engine to expose a web service that can be consumed in a programming language agnostic way. The legacy RPC and SimpleTaskDispatcher servlets come pre-configured with your installation and are capable of exposing dynamic WS-I compliant web services that do not require additional deployment steps on your part. The schema these services make use of are dictated by the set of tasks comprising the web service and they are always protected by web server authentication.
If your site is using form-based authentication, programmatic clients attempting to access the RPC or SimpleTaskDispatcher servlet must use the /protocolAuth URL prefix. For example:
For more information about form-based authentication, see Form-based Authentication.
Alternately you can choose to generate and deploy a JAX-WS based web service that is based on a set of Info*Engine tasks and take more control over the mechanism securing that web service. It is also possible with JAX-WS based web services to write a web service purely in java code that may or may not make use of Info*Engine. In this scenario each web service is deployed as its own Java servlet.
Java Message Service (JMS)
The Info*Engine MSG and WES webjects can be used to integrate with Message Oriented Middleware using the Java Message Service (JMS) APIs. Subscriptions to JMS queues or topics can result in the execution of Info*Engine tasks within an Info*Engine Java Virtual Machine. The tasks can then interact with any of the systems connected to that Info*Engine server (including the Windchill server in which it is embedded). JMS can be a powerful way to integrate an enterprise application in a multitude of ways and can facilitate one or two way communication between Info*Engine and some other enterprise system through a Message Oriented Middleware server.
External Applications Processing XML over HTTP (or HTTPS)
Info*Engine comes pre-installed with the IE servlet that can be used to invoke Info*Engine tasks directly over HTTP or HTTPS. When tasks are invoked through the IE servlet the Info*Engine Virtual Database (VDB) is rendered as XML in the response.
Alternately, Info*Engine tasks can condition the data in the response by writing binary data in place of XML or by transforming the Info*Engine VDB to an alternate XML representation of their choosing.
By using the IE servlet simple HTTP or HTTPS clients (written in any language), an application can issue requests to send and retrieve data from Info*Engine.
If your site is using form-based authentication, programmatic clients attempting to access the IE servlet must use the /protocolAuth URL prefix. For example:
For more information about form-based authentication, see Form-based Authentication.
Was this helpful?