Subscribe by Email

Your email:

TIC Solutions

TIC Software Blog

Current Articles | RSS Feed RSS Feed

Make Your Logs More Useful: Use LogWatch!

  
  
  

Information overload resized 600

The Challenge: Log information overload

Any Operations Support person can tell you, one of the challenges of the job is making use of logfiles to help keep abreast of potential problems.

However, if you have ever sat in front of a NonStop Viewpoint or EMS console display, you would know that the amount of messages that scroll by is impossible for one to read, let alone analyze.

Or open up any application disk log file, and I can bet you that there are tons of messages in there that no one knows what they mean. Except maybe the person who wrote the program. See if this scenario sounds familiar:

Operation: “I just saw this message in the log. What should I do with it?

Developer: “Oh, don’t worry about it. It’s just a debugging statement.”

Operation: “What about that one?”

Developer: “You can ignore that one too. It’s just an informational statement.”

Person with idea resized 600


         (Wrong) Conclusion
         Log messages are not important! 

Making Log Messages Meaningful

The major difficulty that arises is that logfiles serve purposes that demand two somewhat conflicting sets of requirements:

  1. Logs must be as detailed as possible, to help Development find very specific information about why and how something has happened.

  2. Logs must be understandable and simple enough to facilitate the Operation’s and Technical Support's job of actually making sense of them to respond in a timely manner 

There is a better way - LogWatch

TIC's Logwatch utility is designed to make a Support person’s job easier by doing some basic analyzing and display formatting for a wide range of logfile types.  Logwatch can be easily configured to parse through your system's OSS and Guardian logs to detect errors and raise alerts.Logwatch is easy to use and will work right out of the package to help you monitor OSS log files such as iTP Web Server logs and Java logs, or Guardian applications logs or EMS and VHS.

LogWatch allows you define what messages you are interested in, and filters out the rest for you.

 

 LogWatch Filters resized 600

Below is an example of how LogWatch can look for specific entries, e.g. [ERROR] in a very busy log file.

LogWatch finds ERROR in log

 

LogWatch can further extract relevant parts from the message, and add text to make it more meaningful.

2012-07-03 07:03:24 JAVA PROGRAM ERROR: getParamValue - SVBH-DCI-HEADER Contact Development  "

The above line consists of EXTRACTED entries from the log message, plus ADDITONAL TEXT (underlined) added by LogWatch to make the log message less cluttered and more meaningful.

describe the image

  • Keep complete and detailed logs
  • Plan ahead, and use filtering to minimize clutter when searching through logs for relevant information.
  • Let LogWatch automate your Nonstop log monitoring without over burdening your EMS logs

 

Other Blogs you may be interested in

 


Feedback please

Do you find this tutorial blog helpful?  Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

describe the image Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.
describe the image

Know Your OSS Logs Part 2 - Java Servlet and NS/JSP Logs

  
  
  

WhoWhatWhyWhereWhenHow 2describe the image                    Java Tomcat resized 600

 

In my previous article (Know your OSS Logs Part 1), I discussed the importance of monitoring iTP Web Server logs. If you are running Java servlet or JSP applications with iTP Web Server on NonStop, it becomes even more imperative that you monitor their logs. Why? Because they are your only conduit into what's happening in the execution environment. Is the application running correctly? Was there an environment issue? Did the application abend? All these and other useful information are kept in the logs.

In this article, I want to share with you some basic information on Java, Servlet and JSP logs. Again, all this information is already available in the HP documentation, and so I am going to give you the "Cliff Notes " version here:

What to monitor?

servlet.out stdout. This is the default location for Servlet to write out APPLICATION  messages. So, if there is any issue encountered by the applications, , e.g. Pathsend failures, or datafile security errors, etc., the messages are usually reported in this file.
servlet.err stderr. This is the location for Servlet to report errors encountered by the servlet.
JSP rollover logs
Logs related to the Servlet/JSP processing, and may contain many, many entries, which include the servlet container's activities and status. This is a particularly difficult log to sift through, as there can be so much information in there. These logs are configured to "rollover" (create a new one) based on certain criteria, such as date or size. 

servlet.out sample entry

$PM:inquiry-class failed with a server exception.
An error has occurred with the link to the server.; TS/MP error 904; File system error 201; serverclass name: $PM.inquiry-class

Note: The above entry shows that the application has failed on a Pathsend and logged this message

JSP rollover log sample entry

An error occurred at line: 36 in the jsp file: /aceviI.jsp
DataConversion cannot be resolved
33:     // prepare the byte arrays
34:     if (messageIn == null || messageIn.length() == 0) messageIn = " ";
35:     byte[] messageInBytes = new byte[messageIn.length()];
36:     DataConversion.JavaStrToCobolStr(messageInBytes, messageIn, 0, messageIn.length(), "UTF8");
37:     byte[] messageOutBytes = new byte[maxReplyLength];

Note: The above entry shows that the application has encountered a run time environment error due to missing code.

Why monitor?

Monitoring these logs allows you to check the health of the Java Servlet or NS/JSP applications and to detect errors as soon as they occur.

  • Did your Servlet just abort?

  • Did your NS/JSP just encountered a Pathsend error?

  • What NS/JSP pages are being accessed?

  • How can you quickly find the ERROR in your logs, among all those INFO and WARNING entires?

  • Which line of code in your Java Servlet has a problem?

Where are the logs?

The locations of these log files are specified in the server configuration file, and they usually reside in <NSJSP_HOME>/logs where <NSJSP_HOME> is /usr/tandem/webserver/servlet_jsp/ or /usr/tandem/webserver/servlets/

serlvet.out /usr/tandem/webserver/servlets/logs/servlet.out
servlet.err /usr/tandem/webserver/servlets/logs/servlet.err
JSP logs /usr/tandem/webserver/servlets/logs/servlets.2012-08-02.log (rollover by date)

Who should look at them?

The Operation team members are the people that monitor these log files as it allows them to check the health of the system. However,the log entries are very important to Developers during development or QA phases as well, as the logs will help them quickly pinpoint the locations of code issues.

If there are errors, then Development may be contacted to look at them.

servlet.out Operation,  Development
servlet.err Development
JSP logs Administrator, Development

How to review the logs?

If you do it manually, it can be quite a daunting task to look through all the different entries to identify what you are looking for.  While you could use cat, tail and vi to review them, realistically, you would be better off downloading your files to your desktop computer and using a desktop tool to sift through the file. But the best way is to automate with LogWatch.

 Automate with LogWatch! Automate

Instead of having to manually view these files in OSS directly, you can automate by using TIC LogWatch to:

      • Look for ERROR entries in the servlet logs

      • Look for any "thrown exception" messages

      • Extract the key information from the error messages and raise an alert email or EMS message to notify Operations or Development

      • Clone a copy of the entries to a Guardian file

      • All these and more can be done automatically with LogWatch
moreinfo_icon

Feedback please

Do you find this tutorial blog helpful?  Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

describe the image Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.
describe the image

Stuart Selip’s closer look at Requirements Workshops

  
  
  

"You guys start coding, I'll go find out what they want!"

You undoubtedly have seen the broadly circulated cartoon with this punch line. It’s funny because for many of us it comes too close to reality of many projects that are done with very poorly defined requirements. You have also probably seen the famous “Tree Swing” cartoon of requirements drift that has floated around for years.  In this cartoon, a collection of improbable variations on a simple tree swing diverge further and further from the client’s desire for an old car tire tied by a rope to a sturdy tree branch.  Here are two of my favorite panels from “Tree Swing”.

treeswing

Does it have to be this way?  Let’s find out. The usual way that requirements are documented begins in a requirements meeting, often the first of so many. 

Meetings, meetings, and more meetings…

How productive are these so-called requirement meetings? Ever attend a requirements gathering meeting that turned into a “verbal” food fight, al la Animal House? How about a meeting with no agenda, where attendees checked email while the boss rambled on, the unquestioned answers far outnumbered unanswered questions, and no “action list” appeared for post-meeting follow-up?   There is a better way to have a meeting of the minds with your colleagues and stakeholders. The better way is a “workshop.” 

Why a workshop?

Why is a workshop a better way?  Because it is guided by a facilitator whose mission it is to ensure the workshop team jells, and produces the results it is capable of producing. 

describe the imageFor workshops related to TIC’s Model-Driven Architecture (MDA) work in legacy modernization  and new software development, we like to follow the general workshop format set down in Requirements by Collaboration (Gottesdiener, 2002), a classic on the subject.  

From the 50,000 foot level, effective workshops are facilitated meetings with an agreement on workshop scope and agenda based on collaboration.  It is the workshop facilitator’s responsibility to keep things moving in a friendly and orderly way.

 

Facilitation… What’s that?

According to Don Paulson of Iowa State University, facilitation is “the art of leading people through processes towards agreed-upon objectives in a manner that encourages participation, ownership and creativity from all involved”.  That sounds great, but what does it really mean? 

It means commitment from the facilitator and the participants. They must rapidly traverse the team dynamics arc proposed by Bruce Tuckman (Tuckman, 1965), as Forming, Storming, Norming, and Performing. 

dynamic arc

The facilitator guides, advises, and mentors the team to:

  • Appreciate the ground rules of the workshop and the workshop goals (Forming),
  • Conquer startup hurdles, interpersonal issues, and believe the workshop can achieve its goals (Storming)
  • Recognize and accept the contributions and interaction styles of their fellow participants (Norming), and
  • Create the  workshop deliverables together, according to the workshop’s goals (Performing)

So the Workshop Facilitator eases the team’s travel through the team dynamics arc to attain workshop goals. What goals might those be?  Naturally, it depends…

Workshop goals

If you are modernizing legacy applications, an early requirement is to decide what should be modernized. Some evaluation of your legacy application portfolio must take place. You will need to decide which application suites will provide the greatest benefit and/or cost relief from modernization.  The process of evaluating the costs vs. benefits of your application portfolio is called “Application Rationalization”. The “application facts” should be gathered and assembled impartially, but the results will need discussion and a meeting of the minds.  Invariably, application suites have their champions, and a facilitated workshop is an excellent vehicle for the horse-trading and sausage-making that will go on.  In this case, the workshop goal is to prepare a modernization project charter, and prioritized list of application suites for modernization.

iStock 000005140774SmallOnce the hard choices have been made about which application suite will be modernized first, additional workshops should be scheduled to cover, for example, modernization resource planning and scheduling, issues and problems with the present system, and desired future enhancements. Each workshop’s goals will result in deliverables providing validated input to future project stages.

If you are developing new software solutions then instead of prioritizing application suites, workshops will have a different focus. Solution requirements, glossaries that ensure a common understanding of terms across stakeholder groups, business policies and their impact on business rules, and similar critical elements will require discussion and analysis.  Using TIC’s Model-Driven Architecture (MDA) approach, some workshops will be review and discussion sessions where models are reviewed, revised, and approved. So, new software development workshop goals would include producing relevant deliverables, and also include identifying areas of disagreement where workshop negotiation is not sufficient to gain consensus.

Situations will arise in which consensus will not be found in the workshop. The workshop facilitator is not an arbitrator who “makes the call” when the workshop participants cannot agree.  Sometimes disagreement is a good thing, indicating a greater degree of attention must be paid to the area of disagreement.  Facts in dispute, lack of clarity about business concerns and policies, and governance and “territorial tensions” will all lead to additional efforts outside the workshop, or demand guidance from higher organizational powers.

Who’s got time for this? Let’s start coding!

You may think all of this workshop “stuff” is a huge commitment of time and effort, but a workshop is really a big time saver. Imagine what would happen if your organization embarked on a legacy modernization effort with no consensus on what to do first, who is to be responsible for what, which resources will be need and when, and similar issues critical to success.  That approach would really consume time and money, but it would not produce good results.

TIC Workshops

Our workshops are facilitated meetings attended by at least two TIC professionals and up to 10 participants from our client’s team.  Before TIC arrives on the scene we’ve ensured there is agreement on workshop scope and agenda.  Once the workshop begins we keep things moving in a friendly and orderly way.  In other words, no food fights and no “checked out” attendees… but running a facilitated meeting is much more than ticking milestones off the agenda while keeping participants awake or from coming to blows.

Facilitation is an important “soft” skill set that might be underappreciated in a technically focused world. The “stuff “of facilitation is helping the workshop to succeed.  We do this by guiding the workshop process, and ensuring that group members communicate clearly, maintain focus on problem solving, and keep conflict to an acceptable level.  When decisions are taken, or questions arise, we track them, ensuring that decisions receive action, and questions receive answers.

NonStop, MDA, and Workshops

TIC Software using the MDA tool suite from our business partner BluAge and a workshop approach to consensus-building,  is helping customers build NonStop Java applications quickly. However, there is some thinking to do before generating code.  Workshops will bring clarity to your stakeholders.  Here are some good workshop applications.

  • Selecting a TIC Quick Start Candidate Application
  • Use a workshop to build consensus, and agree on what to modernize or develop  
  • Assessing the results of a TIC Quick Start
    Workshops are excellent for assembling lessons learned, before a full-scale effort begins.
  • Building a business case for modernization
    A workshop is an excellent venue to discuss, analyze, and agree on the direct and collateral impacts that modernization will bring.
  • Planning software development iterations
    A workshop is a great vehicle for iteration review and planning.

 

Take Away

describe the imageWorkshops give you and your organization the edge it needs to ensure modernization or new development yields solid results, on time, and in budget. Our workshop approach focuses on bringing you success, whether you are:

  • Deciding what to modernize
  • Planning a new software development project.

Once the hard choices of what to modernize, or what to build have been made, workshops continue to deliver value. Our MDA approach is based on building models, and generating software solutions. Workshops enable business stakeholders and technical staff to participate, together, in the modeling process.  Modeling workshops focus on critical elements like business rules, calculations, and process flows, while code generation handles “application burden” with frameworks.

Whether you are interested in brand-new development, or want to re-engineer your existing COBOL applications into Java, TIC, and our modeling with BluAge will make things happen more quickly, with higher quality, and lower solution lifecycle cost.

Are you ready to learn more about TIC, modeling with BluAge, and what it means for your NonStop environment? Schedule a conversation by emailing us at sales-support@ticsoftware.com

Feedback please

Do you find this tutorial blog helpful?  Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Stu Selip resized 600 Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries. Read More

Works Cited

Gottesdiener, E. (2002). Requirements By Collaboration. Boston: Addison-Wesley.

Riether, N. e. (2012). Social Facilitation with Social Robots. Human Robotics Interaction Conference. Boston, MA: Association of Computing Machinery (ACM).

Sibbet, D. (2002). Principles of Facilitation: The Purpose and Potential of Leading Group Porcess. San Francisco, CA: The Grove Consultants International.

Tuckman, B. W. (1965). Developmental Sequence in Small Groups. Psychological Bulletin , 384-399.

describe the image

Learning Modernization – Where to start?

  
  
  

eclipse

“Begin at the beginning and go on till you come to the end: then stop”
– “Alice in Wonderland” by Lewis Carroll

So you want to learn more about using modern tools and programming in modern languages. Your problem is not a lack of information and resources, but rather too much information.  The challenge is: How do you begin? My recommendation is to start by getting familiar with the development standard tool, which in this case is Eclipse.

describe the imageWhy should you learn Eclipse?

  • Integrated Development Environment (IDE)
    An IDE is a software application that provides comprehensive facilities for software development. Whether you will be programming in Java or other modern languages, Eclipse is a great development tool to use .
  • It is FREE!
    Eclipse is open source, and can be downloaded free of charge from http://www.eclipse.org. Visual Studio from Microsoft is also an excellent IDE, but it does incur a licensing cost.
  • It is versatile
    Eclipse has many, many features. You can use it for something as simple as a full featured editor, or for more complex tasks such as debugging or automated testing. My advice is: stick with the basic features that you need to get started, and not worry about all the other features until you need them.
  • It is extensible
    Eclipse has an extensible plug-in system, which allows developers or 3rd party vendors to add additional functionality.  For example, the BluAge Modernization tool can generate code from models, as well as reverse model legacy COBOL programs into Java code.  Also check out some of these plug-ins for NonStop from Nexbridge. http://www.nexbridge.com/Products/Default.htm
  • It works with NonStop
    Besides being able to use Eclipse for developing applications on your desktop, you can also use Eclipse with NonStop.  In addition to supporting Java, the NonStop Development Environment Eclipse (NSDEE) allows you to work with C, C++, COBOL and pTAL.

NSDEE

Learn EclipseLearn once.  Use anywhere (including NonStop)!

The advent of NSDEE provides a modern industry standard Eclipse based development environment for NonStop. It allows you to edit -> build -> deploy -> debug C, C++, COBOL and pTAL programs from your desktop. So, by learning how to use Eclipse once, you can apply your knowledge across multiple platforms and technologies!

download-free-ebook


resources icon

Feedback please

Do you find this tutorial blog helpful?  Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

describe the image Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Read More
   
describe the image

Stuart Selip's Closer Look at: Software Modeling

  
  
  

Have you ever considered modeling?

notmodeling

No, we’re not suggesting you strut down the fashion runway or try to get that little ship to fit inside the bottle.  We are talking about modeling software-intensive systems using Unified Modeling Language (UML2). 

Before we talk about modeling software, let’s look at a more familiar kind of model, a blueprint for a home. A home is a complex set of elements like rooms, stairways, entranceways, windows, electrical services, and plumbing that must work together to form a useful, safe, and enjoyable living environment.

Over time, the architecture profession has evolved a set of standard drawing types that capture the organization, placement, and interaction of these building block elements. Three examples of blueprint drawings show an external view, floor plan, and electrical services of a home.

homemodeling

Long ago, it took years of drafting apprenticeship to create such plans. Today, it still takes training and skill to do the architecture, but architects use powerful computer-aided design (CAD) tools to render these plans and make them useful. In fact, if you purchase a factory-built home, the design models used to generate these drawings also drive the automated production process of the home.

Modeling business applications using UML2 is much the same as the modern building architecture process. As an IT architect, you still must know how users will interact with your system, and how available and reliable it must be. The architect must estimate the system’s transaction capacity, screens, controllers, data entities needed, and service behavior.

However, this is little different than the home's architect knowing know how the home buyer will use the home (e.g. daily living, weekend cabin, summer shore), the home's expected living capacity (e.g. number of bedrooms and bathrooms, size of kitchen, finished basement, separate apartment), and its necessary electrical, heating, cooling, and plumbing capacities.

To create business application systems UML2 models let you express meaning about the structure and behavior of software by drawing diagrams. If you construct the right models in the right way, and have the right Model-Driven Architecture (MDA) tools, you can turn your models directly into executable code. This is no different from a CAD model driving the production process of a factory-built home. To learn more about MDA, see our blog post on Model-Driven Architecture.

Which are the right models?

PIM

The right models are Clear and transparent. The models that are understandable to business stakeholders and technologists are usually Platform-Independent Models (PIM).  The PIM exactly captures the user interaction, behavior, and structure of your software solution without all the technical details that obscure business meaning. Remember that the architecture drawings of your home had to be clear and transparent, or the builders would have had real problems creating the structures and services.

Tthe PIM is not just a great communication tool. The PIM has First Class IT Asset Value. Remember that with the right MDA tool support, you can transform your PIM directly into executable software.  We do exactly that with our BluAge MDA tool suite (www.bluage.com). We transform PIMs directly into your desired target technologies, like Java or .Net.   This means your PIM is a first class IT asset that has value and life beyond any particular technical implementation. It becomes the “Single Source of Truth” for your software. Homeowners who have home renovation done without the benefit of a set of architectural drawings learn quickly that renovation turns from engineering into guessing and hoping.

Beyond communication and IT Assets, the PIM is about process efficiency and effectiveness. Drawing models is much faster than writing system design documents, and so is reading the model diagrams.  Transforming models directly into code is much faster and more reliable than error-prone hand coding. This is especially true if you have not yet established mastery of the target technology platform. Whether the domain is home building or application software, when the power of modeling and automated production is applied, the result is high-quality output, built on time and in budget. 

When our BluAge tool suite transforms models, it is using the latest frameworks and techniques appropriate to the target architecture you select. The faster your PIM turns into code, the faster it can be tested and approved, or scheduled for PIM review and enhancement.

So, we’ve given you three good reasons to do some modeling.

  • Clarity and Transparency - Your business stakeholders will understand your software design intentions much more easily and thoroughly, when compared to reading requirements or trying to understand code
  • Asset Value - You will have a first class IT asset that documents your software in a language-independent way, and that transcends any particular implementation technology
  • Efficiency and Effectiveness – Authoring models is faster than writing functional and technical specifications, and reading and checking models is faster than reading weighty documents.  Transforming models into code is much faster than hand coding and rapid transition to testing means efficient and effective approval, or feedback.

NonStop, MDA, and Modeling

TIC Software (http://www.ticsoftware.com), using the MDA tool suite from our business partner BluAge (www.bluage.com) , and focused modeling techniques tailored to BluAge,  is helping customers build NonStop Java applications quickly. Sorry, but we don’t build houses.

Here are some modeling specifics, at a glance.

  • BluAge only requires three of more than one dozen UML2 diagram types.
  • Each diagram type delivers a specific view of your system’s structure and behavior.
  • The rich set of UML2 Stereotypes and Tags helps you clarify your model’s meaning.
  • A set of intuitive “Modeling Wizards” multiplies your modeling efficiency
  • BluAge’s model checker quickly finds model “syntax” errors, when you don’t use wizards. 

Instead of building every conceivable UML2 diagram, confusing your stakeholders, and wasting valuable time, we speed things up by building the models that your users will understand, and that BluAge can turn directly into executable code. The generated code is tested, and approved, or the model is changed and the code regenerated, as necessary.  There is no extra diagramming and no hand coding!

We said that the Platform Independent Model (PIM) avoids technical implementation details.  Modelers focus on building business logic rather than dealing with technical matters like which Java frameworks to use.  Today, our generated code uses popular Java frameworks like “Hibernate” and “Spring”, also recommended by HP.   Of course, as the Java world marches on, BluAge will march with it, using the best technical frameworks then available.

takeaway icon

Take Away

Our modeling approach focuses on creating the right model diagrams that will result in generating the right software solution for you.  Building the right models enables business stakeholders and technical staff to participate together, in the modeling process.  Modeling focuses on business rules, calculations, and process flows, while code generation handles “application burden” with frameworks.

Our BluAge MDA tool suite immediately generates those business models into executable solutions so business stakeholders can validate them, or make changes.  The bottom line is protected by delivering value on time, and avoiding disaster.

Whether you are interested in brand-new development, or want to re-engineer your existing COBOL applications into Java, TIC, and our modeling with BluAge, will make things happen more quickly, with higher quality, and lower solution lifecycle cost.

Are you ready to learn more about TIC, MDA and NonStop?  Send us an e-mail Schedule a conversation by emailing us at sales-support@ticsoftware.com

Feedback please

Do you find this tutorial blog helpful?  Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Stu Selip resized 600 Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries. Read More
describe the image

Fix it before it breaks – Modernize now!

  
  
  

FIXIT

Some people may believe in: “If it ain’t broke, don’t fix it.” Unfortunately, this saying undermines the importance of investing in strategic options with foresight to avoid pending disasters.

A couple of cases in point:

oldPC I started my first job in the 1970’s with an intelligent terminal company called Sycor , which was eventually acquired by Northern Telecomm. In those days, Sycor terminals were used for Source Data Entry (key to disk), and its programming language was called – ironically – TAL for Terminal Application Language. It was an Assembler/Macro like language, which required one to work with registers, memory addresses and screen fields. When Sycor introduced the Sycor 440 machine in 1976, it had a whopping 64K of memory, a 10 MB hard disk, and a COBOL compiler. Surprisingly, I was one of the very few field personnel that knew COBOL at the time. When I asked some of the more senior Sycor analysts about COBOL, their response was: “Why would we need COBOL? Assembler language is faster and uses less memory!”  Well, we all know that the world has moved past Sycor TAL and assembler programming languages.

TALscreen

Fast forward to 2001: I was giving a Web Enabling workshop to a NonStop customer in Chicago, when one of the senior COBOL programmers raised his hand and asked: “ COBOL works perfectly well for us. Why would we want do any of this web stuff?”  That company was later acquired and sadly, they no longer use NonStop.  None of the NonStop developers was asked to stay to work in the new IT environment, which was Unix, Java and totally web-based.

Today, the NonStop has a lot of modern technologies available, including support for SQL, web server, Java, Eclipse, SOAP and others. Yet, a lot of users still haven’t taken advantage of some or all of these new technologies.  In many cases, they are still developing COBOL applications that use 6530 terminals, Enscribe files and interface with other platforms using FTP. Seriously, it is in your best interest to start considering options to modernize your NonStop environment.

“Why should I be interested in modernizing?”


top3reasons
  • Prevent self-obsolescence
    Working with new technologies will expand your current and future employment opportunities.
  • It could make your job easier
    There are a lot of facilities, tools and utilities available in Java, Apache, SOAP, and other new technologies that are “off-the-shelf” which you can leverage without any coding
  • Build a stronger and more dynamic team
    If you are a manager, adapting new technology will create positive challenges for your current team, and make it easier to hire new staff.

“What should I do?”

learn

  • Make time
    I know that all of us are very busy at work, barely keeping our head above water. I encourage you to check out this blog  “Create Time to Change Your Life.
  • Pick one topic to start
    Any topic: Java, Web Service, Apache, etc. Instead of trying to learn everything about all the modern tools, pick just one thing to start learning. Start slowly but work on it consistently. If you are looking for a recommendation, I would suggest Java.  Why? Because it is easy to set up and learn on your desktop, and you can test your programs on the NonStop very easily. In my next blog, I will cover more on Java and NonStop, and the benefits that it offers. 
  • Look for free tutorials
    There are many excellent tutorial blogs and YouTube videos available. Here are some examples:

Also, visit our blog (http://blog.ticsoftware.com) for an upcoming series of Modernization Tutorial blogs and vides.

do it nowDon’t Wait. Start today.

In the history of IT, complacency and shortsightedness usually lead to obsolescence in applications, platforms and people. It may not be “broke” right now, but you can’t afford to wait for it to be broken before you try to fix it. By then, it will be too late.

Help resized 600Need professional service help?

Contact TIC Software.

If you need help to get started, you can benefit from our Workshops or Quick Start Service. TIC Software is ready to help you modernize your NonStop applications and develop new software solutions. Check out our Modernization Service suite on our web site.

Feedback please

Do you find this tutorial blog helpful?  Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

describe the image Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Read More
   
describe the image

Stuart Selip's Closer Look at: Minimizing Development Risks

  
  
  

Want to minimize development risks? Adopt the right methodology!

risk dice describe the image

In this column, I would like to discuss how the right methodology can minimize risks and accelerate the development process.

Development Risks

book iconSteve McConnell, author of the classic book on development “Rapid Development: Taming Wild Software Schedules”  attributes insufficient risk  management as one of “classic mistakes” in development projects. He wrote:
“…Failure to manage risks is one of the most common classic mistakes.” And “… if you don't actively manage risks, only one thing has to go wrong to change your project from a rapid-development project to a slow-development one..”

 

A software development methodology that fits your project can reduce your risk of software delivery failure. So, which risks need reducing?

  1. Implementation Risks – You deliver late, over budget, missing features, with low quality
  2. Impact Risks – The many benefits of modernization you promised have failed to materialize
  3. Strategic Risks– It’s tomorrow in the marketplace but you’re modernizing  yesterday’s solution

If you have been programming on a legacy system, then chances are you already know of or are using a classic methodology – the “Waterfall” methodology.

Waterfall

waterfall icon

This methodology has been around for more than half a century and remains popular. Waterfall processes begin with gathering requirements, and continue with requirements analysis, solution design, software development, and finally solution testing, before delivery to stakeholders.

Waterfall can deliver good results in software delivery when four key conditions are met:

  1. All requirements must be known before software development begins
  2. All stakeholders must agree on all requirements
  3. All requirements must remain unchanged during the delivery and adoption cycle
  4. The underlying solution architecture must already exist, and be well understood

When familiar stakeholders request small projects that make incremental changes to an existing software solution, the requirements of Waterfall are met.  In other words, Waterfall properly supports the familiar work of legacy solution maintenance, like adding to, or modifying existing screens, reports, or calculations.

Modernizing NonStop applications or building new solutions in a new technology mix will put all of these conditions into question. Say you want to follow HP’s advice to NonStop users modernizing NonStop applications by using modern tools, object-oriented programming models, and technologies.  Such a modernization initiative should be based on a modern model.

Waterfall is not a modern programming model! A modern programming model focuses on delivering software quickly, so stakeholders can judge whether it is correct and useful.  Getting rapid feedback means learning and improving early in the modernization effort, rather than discovering a huge compound failure at the project’s end. Testing happens at the end of the Waterfall process. By then it is too late to avoid catastrophe.

New technologies are different than your current underlying solution architecture. For Example, Java is an object-oriented language and COBOL is not.  The entire approach to problem analysis and solution design is different.  Data flow diagrams and functional decomposition are not going to help you uncover the right classes and assign attributes and operations to them.  Concepts like classes and operations don’t even exist in COBOL, and Waterfall won’t help you with this dilemma.

Here is the Good news – TIC Software can help you! Now you can benefit from rapid application development with modern tools, programming models and technologies.  We make this possible with Model-Driven Architecture (MDA) and a methodology that gives great results.

NonStop, MDA, and Methodology

mda flowchart

TIC Software (http://www.ticsoftware.com), using the MDA tool suite from our business partner BluAge (www.bluage.com) , and a pragmatic development methodology tailored to MDA,  is helping customers build NonStop Java applications quickly.

Here is our methodology, at a glance.

  • We take an iterative approach to software development, focusing on exposing and eliminating software delivery risk.
  • Working with you and your team, we identify critical core application functionality early in the development cycle. 
  • We build standards-based UML models to reflect the core functionality, generate code, and deliver solutions that your stakeholders can review quickly
  • Changes can be incorporated into the model, which is then regenerated instantly
  • Instead of trying to document every single requirement, providing a complete requirements analysis, and committing to a full design specification before a single line of code has been written, we short-circuit the whole process.

This approach quickly converges on the right result. At the end of the iteration, we collectively review and learn from our recent experience.  Each subsequent iteration benefits from that cumulative learning.

The code we generate leverages popular Java frameworks like “Hibernate” and “Spring”, which are some of the tools recommended by HP.  This means we are free to focus on building business logic and solving business problems for you, rather than wrestling with technical “application burden” issues like middle-tier object management and data persistence. You gain access to popular but complex frameworks so they deliver results instead of creating delay and frustration.  As the Java world evolves and new frameworks and techniques appear, the BluAge MDA tool will evolve in parallel, making the “new” accessible and available with no disruption.

download-free-ebook

Take Away

describe the imageOur Iterative software development approach with MDA exposes software delivery risks early, avoiding project catastrophes.  Building graphical models of software enables business stakeholders and technical staff to participate, together, in modeling.  Modeling focuses on business rules, calculations, and process flows, while code generation handles “application burden” with frameworks. MDA immediately generates those business models into executable solutions so business stakeholders can validate them, or make changes.  The bottom line is protected by delivering value on time, and avoiding disaster.

Whether you are interested in brand-new development, or want to re-engineer your existing COBOL applications into Java, TIC and MDA will make things happen more quickly, with higher quality, and lower solution lifecycle cost.

Are you ready to learn more about TIC, MDA and NonStop?  Schedule a conversation by emailing us at sales-support@ticsoftware.com

We also recommend to read:Model Driven Architecture Blog

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Stu Selip resized 600 Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries. Read More
describe the image

Stuart Selip's Closer look at: Model Driven Architecture

  
  
  

MDA Intro

mda left new2 resized 600

Guess what?  You have legacy applications.  What are they?  Well, they are COBOL applications that are many years old.  Our loyal developer community is looking forward to retirement, so who will attend to the care and feeding of these “classic” applications? By the way, COBOL isn’t the only legacy technology You’re right if you think PACBASE, “C” and “C++” applications or fat-client solutions like those constructed in the 1990s using PowerBuilder, Delphi, and Gupta SQLWindows are legacy applications today.  These are all “legacy”, but the greatest volume of “good old code” was written in COBOL.

What is in your legacy applications? Usually they contain a mix of business rules, process flows, screen interactions, batch processes, and reporting that, through years of maintenance and enhancement, have grown in size, scope, and complexity. Some of those applications could be called “High Value”, while others are not unique or critical.

Is this good news?  Well, yes and no.  High-value legacy code might just form the competitive basis for your company. The intellectual property (IP) in legacy applications often competitively differentiates your organization from its peers, and you are subject matter experts (SME) of those applications. On the other hand, newly-minted IT professionals no longer study COBOL. Instead, they think more about Objects, Java, C#, and web technologies.   We have a good approach to this situation of legacy code and new coders. We think your high-value code could benefit from some intensive reverse engineering that extracts the intellectual value of the software, and gives it a new lease on life.  Finding the value in legacy applications has been a “holy grail” quest for more than 20 years, but only recently has modernization moved from alchemy to engineering.  How has this happened?  Think Model-Driven Architecture (MDA).

describe the imageWhat is MDA? 

Simply, it is a graphical modeling approach to object-oriented software development, specifying both the static technology building blocks (the classes, information content, and operations)  and dynamic behavior  (“when the online customer clicks on “place order” the system will….”) of a software solution as elements of a model.  Using MDA, you, as SMEs, help capture the IP of your legacy applications, without retaining the code in which it was written.  Think of using MDA as applying an organized process to build a set of really powerful “flow charts” using Unified Modeling Language (UML).  UML wasn’t around when your applications were written, but today it is an industry-standard way of describing systems and programs, covering perspectives from overall system architecture, through internal program design. More than just pictures and charts, with the right companion technology MDA allows you to “generate” modern code, without having to sit there and write it up by hand. 

No, we did not invent MDA.  MDA has grown from a standards-making process of the Object Management Group (www.omg.org) in the early 2000s to something practical and useful today.  Now, when you have a UML model ready to go, you can fire up an MDA application generator to read the model, and create modern code for your chosen target technology stack.  Frequently, technology stack choices are Java, or Microsoft platforms, and in an MDA approach, the usual software coding process has been replaced by code generation.  The trick is, you have to build your models right, and select the right generator technology.  With your expertise in your existing applications and TIC’s investment in training and technology, the time is right for MDA modernization.

How do you decide which legacy applications should be modernized?  It takes a rationalized IT portfolio to pinpoint your high-value applications for MDA modernization and lower-value candidates for alternative conversion, or replacement. If you’re not sure about your IT Portfolio, we can help your organization create one. Basically, you need to know about the value the legacy app delivers, vs. the cost to maintain and/or modernize it. For example, though perhaps convenient and familiar to your users, many software solutions (e.g. accounting, payroll) are not business game-changers that lead your organization to market preeminence. “Commodity” applications may not be worth modernization.  Other approaches, like replacement with commercially available “off the shelf” solutions for in-house or “Cloud” access might make more sense.  When you want to know more about legacy modernization, MDA, IT Portfolio Management, or any other forward-looking practice… we are ready and able to have that conversation, and deliver on what follows.

download-our-whitepaper

Feedback please

Do you find this tutorial blog helpful?  Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Stu Selip resized 600 Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries. Read More
describe the image

Who Is Minding Your Logs?

  
  
  

Monitor resized 600

 I have always said that you can tell who the Nonstop Users are in the audience by the questions they ask, such as:

  • Is this scalable?

  • What is the performance?

  • How do I monitor it?

The last question highlights the importance that NonStop system managers place on providing responsive support for their end users. That's why system performance monitoring tools like Prognosis, MOMI and others are very popular at Nonstop installations. On the other hand, monitoring logs on the NonStop doesn't get a lot of attention beyond the use of EMS or VHS. 

Yet it is an important topic that is worth a closer look. How would you answer the questions below?

 

When do you look at your logs? Alarm resized 600

"When there is a problem" seems to be a common response. Surprised? Not really. Given how overloaded everyone is, there is very little time to monitor logs. Unfortunately, "When there is a problem" usually translates to "User calls up and reports a problem." Through routine monitoring of logs, problems can be detected and fixed before they affect the users.

Do you know where your logs are? where is resized 600

"Well... not all of them."
When I speak of logs, most users think of system logs like VHS and EMS logs. Think again. Realistically, on a typical system, there are many other logs, such as:

  • Application logs - entries written out by COBOL, TAL, C, C++ and other applications.

  • OSS logs - Are your running iTP Web server, Java, NonStop SOAP, etc? There are lots of good information in the OSS logs.

  • Subsystem logs - Some subsystems have their own logs.

  • 3rd-party application logs - If you are running a 3rd-party application, e.g. Websphere MQ, chances are it has its own logs

So if you don't know where your logs are, trying to hunt them down to resolve a problem can be time-consuming and detrimental to your service level agreement (SLA) with your end-users.

Are you overloading your logs?    Overloaded resized 600

Some users try to alleviate this problem by routing EVERYTHING to EMS or VHS. Unfortunately, that creates another problem: log overload. When that happens, basically Operations staff stop looking at the hundred of log messages that fly off the screen. Yes, EMS has a very nice filtering capability that can be configured to filter out different types of messages. But the reality is that not everyone is up to the task of configuring filters, and certainly not for tens if not hundreds of different message types that flood the EMS log.

 

"What's in your wallet?"whats in your wallet resized 600

I meant.. logs. If my guess is correct, chances are your logs contain more than just error messages. They probably have warnings, statistics and "stuff programmers write to log for their own use." That's another key reason a lot of people do not bother looking at logs: the content overwhelms them. See if this conversation sounds familiar:

Operator:   "I just saw this message in the log. What should I do with it?"
Answer:      "Oh, don't worry about it. It's a debugging statement."
Operator:   "What about that one?"
Answer:      "You can ignore that one, too."

 The result is a misinterpretation: no need to look at log messages unless someone reports a problem.


The Take-Away   innovation light bulb


  • Monitor your logs

    It can help you improve the quality of your end-user service.

  • Know your logs

    Know what is in them and where they are. There's usually a lot of useful information in those logs besides error messages.

  • Have a log monitoring strategy

    Take control and plan how you want to use the log information.

  • Automate as much as possible

    Have a procedure in place and automate it whenever possible.

Next Topic: Know your OSS logs

As more users are starting to use OSS in one form or another, such as iTP Web Server, Java or SQL/MX, it becomes more important to pay attention to some of the logs that reside in the OSS space. In my next article, I will focus on these OSS logs.

Feedback please

Do you find this tutorial blog helpful?  Let us know what you think, and how we can make it even better. Don't forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

describe the image Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.
   

describe the image

Web Service 101 for NonStop Users

  
  
  
One of the challenges about a topic like SOA (Service Oriented Architecture) or Web Service is not that there is a lack of information. On the contrary, the problem is that there is too much information out there, such as in publications, on the Internet, or from vendor data sheets.  A Google search of “SOA” yields over 50 million hits, while a “Web Service” search returns over 419 million results.  So, where are you going to start, and how long is this going to take you to learn all these?

Don’t let this daunt you.  In this article, we will distill the key essentials of SOA and Web Services into several simple, understandable concepts, especially focusing on what are relevant to your NonStop world.

  • SOA is an architecture, not a product
    Service Oriented Architecture, as the term implies, is a conceptual framework, not a product.  You can compare it with other terms like: Client/Server, Object Oriented Programming or Distributed Processing.  The way to implement SOA is usually via Web Services.

  • Web Service is more than just a Web application
    If you have an application running on a web service that interacts with a browser user, that is not a web service.  Web Service refers to a standard method of communication using certain protocols, which we will cover later.

  • Web Service is Remote Procedure Call (RPC)
    Technically, Web Service can provide more than RPC function. But practically, most applications use Web Service to allow a Client program on one platform calling a Server program or routine on another platform.  This also implies that Web Service involves an application to application, end-to-end protocol  environment.

  • Web Service makes it easy for inter-platform communication
    This is the essence of Web Service: by following this standard, applications on one platform can easily invoke the service on another platform.

Web Service and NonStop

Guess what? Web Service is basically a different implementation of something you already know very well in the NonStop world: Pathway.  Let’s look at some of the the similarity between Web Service and Pathway.

In Pathway, you have a Requester (Client) communicating with a Server (Server Class) over a message-based protocol.

 Pathway NonStop

Web Service is based on the same principle, except that it enables the Client or the Server to exist on platforms other than NonStop over an intranet or the Internet.  For example:

  • You can have a client program on another platform like .NET, accessing your Pathway COBOL Server using Web Service.
  • You can have a requester program on the NonStop, such as SCOBOL or COBOL, accessing a Stock Quote Service  over the Internet (for example, this Quote Service  from www.xignite.com).  In this case, note that we don’t even have to care what platform that service runs on over the Internet.

    TIC Web Service Diagram

Here are some of the technical differences between them:

 

Pathway

Web Service (WS)

Requester/Client

Requester

WS Client

Server

Server Class

WS Server
(or just WS)

Platform

NonStop only

Any platform

Communication protocol

Guardian message system

HTTP

Message Structure

NonStop ASCII

XML

Requester/Response Protocol

Guardian message system

SOAP

Request/Response structure

IPM layout

WSDL

If you are interested in learning more about the components used in Web Service, you can download our overview PowerPoint presentation which explains what XML, SOAP and WSDL are.

Why is Web Service important to NonStop?

Web Service can open up many new possibilities to NonStop applications, such as:

  • Allowing other platforms to access NonStop applications easily
  • Enabling NonStop applications to leverage other services and applications within your company
  • Interfacing to 3rd party packages such as PeopleSoft, SAP or Siebel within the enterprise

What is next?

Now that  we have reviewed the basics of Web Services, in our next blog SOAP/AM Overview, we will show you how you can turn a Pathway Server into a Web Service in 5 minutes!

Stay up-to-date on the latest Blog post by subscribing by Email on the top right side of this page!

describe the image Phil Ly is the president and founder of TIC Software, a New York-based company specializing in software and  services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil has worked for Tandem Computer in technical support and software development 
   
describe the image
All Posts